Typescript 如何在react native day picker中初始化状态?
我正在尝试应用react本机日历。 我的代码是Typescript 如何在react native day picker中初始化状态?,typescript,react-native,Typescript,React Native,我正在尝试应用react本机日历。 我的代码是 import React from 'react'; import {Calendar} from 'react-native-day-picker'; ... const MyCalendar = () => ( var from = new Date(); from.setDate(from.getDate() - 16); var to = new Date(); var startDate = new Date(); st
import React from 'react';
import {Calendar} from 'react-native-day-picker';
...
const MyCalendar = () => (
var from = new Date();
from.setDate(from.getDate() - 16);
var to = new Date();
var startDate = new Date();
startDate.setMonth(startDate.getMonth() + 1);
<View style={styles.container}>
<Calendar
monthsCount={24}
startFormMonday={true}
startDate={startDate}
selectFrom={from}
selectTo={to}
width={350}
onSelectionChange={(current, previous) => {
console.log(current, previous);
}}
/>
</View>;
);
export default MyCalendar;
我的问题是如何初始化值,例如from、to、startDate。
那么我应该如何解决这个问题呢 -;标记后面不能有分号
- </View>; you can't have semicolon after tags
- You have to write views in return(...)
- Now you can call myCalender from class
const MyCalendar = function () {
var from = new Date();
from.setDate(from.getDate() - 16);
var to = new Date();
var startDate = new Date();
startDate.setMonth(startDate.getMonth() + 1);
return(
<View style={styles.container}>
<Calendar
monthsCount={24}
startFormMonday={true}
startDate={startDate}
selectFrom={from}
selectTo={to}
width={350}
onSelectionChange={(current, previous) => {
console.log(current, previous);
}}
/>
</View>
);
};
-您必须编写视图作为回报(…)
-现在你可以在课堂上给我的日历打电话了
const MyCalendar=函数(){
var from=新日期();
from.setDate(from.getDate()-16);
var to=新日期();
var startDate=新日期();
startDate.setMonth(startDate.getMonth()+1);
返回(
{
console.log(当前、以前);
}}
/>
);
};
如果我们有多个用于箭头函数的语句,我们需要使用块体{}
指
在简明的正文中,只需要一个表达式和一个隐式表达式
附上报税表。在块体中,必须使用显式返回
声明
因此,您需要返回视图组件,它是MyCalendar的最后一条语句
这就是为什么我删除了{}for onSelectionChange of Calendar组件,因为我们可以对单行语句使用简明体
一些额外的修理 对于那些我们从未重新赋值的变量,我们应该使用const 请参阅eslint插件的react规则 在JSX中使用布尔属性时,可以设置属性值 为真或省略该值。此规则将强制执行一个或另一个 保持代码的一致性 这就是为什么我删除了日历中StartForCommonDay的真实值 修复后的代码如下:
const MyCalendar = () => {
const from = new Date();
from.setDate(from.getDate() - 16);
const to = new Date();
let startDate = new Date();
startDate.setMonth(startDate.getMonth() + 1);
return (
<View style={styles.container}>
<Calendar
monthsCount={24}
startFormMonday
startDate={startDate}
selectFrom={from}
selectTo={to}
width={350}
onSelectionChange={(current, previous) => console.log(current, previous)}
/>
</View>
);
};
constmycalendar=()=>{
const from=新日期();
from.setDate(from.getDate()-16);
const to=新日期();
让startDate=新日期();
startDate.setMonth(startDate.getMonth()+1);
返回(
console.log(当前、以前)}
/>
);
};
我使用文本编辑器,并使用作为我的样式指南。它们在语法错误检测方面有很大帮助。谢谢您的建议。我按照你的建议把它们修好了。顺便问一下,你熟悉日期选择器插件吗?如果是这样的话,你能帮我在要求下实现它吗?日期期限为从今天到365天。上面的代码显示了大约2年的日期范围。我更新了monthCount={12},但仍然相同。我的意思是,如果今天是2016年8月23日,显示为2016年8月1日~2017年8月1日,如果您能帮助我,我将不胜感激。谢谢。我想你可以安装moment软件包,并参考此链接,以获得从现在起365天的日期,甚至1年的日期减去1天。获得计算日期后,将其作为selectTo的值?
const MyCalendar = () => {
const from = new Date();
from.setDate(from.getDate() - 16);
const to = new Date();
let startDate = new Date();
startDate.setMonth(startDate.getMonth() + 1);
return (
<View style={styles.container}>
<Calendar
monthsCount={24}
startFormMonday
startDate={startDate}
selectFrom={from}
selectTo={to}
width={350}
onSelectionChange={(current, previous) => console.log(current, previous)}
/>
</View>
);
};