Javascript React Native:不使用状态填写表单(无状态表单)
我有一个表单,在滚动视图中。表格中几乎没有问题,例如星号或日期选择器。参见代码:Javascript React Native:不使用状态填写表单(无状态表单),javascript,react-native,Javascript,React Native,我有一个表单,在滚动视图中。表格中几乎没有问题,例如星号或日期选择器。参见代码: {this.setState({currentDate:date}}} />为了忽略要重新渲染的整个屏幕,您必须进行基于组件的设计 您需要创建自己的日期选择器组件。如果您这样做只有选择器组件将被重新选择而不是整个屏幕 如何让我的主要组件知道当前日期 您可以在yourSpecialDatePicker组件中添加一个名为callback的道具,以通知主组件日期值已更改 在示例中,this.currDate值用
{this.setState({currentDate:date}}}
/>
为了忽略要重新渲染的整个屏幕,您必须进行基于组件的设计
您需要创建自己的日期选择器组件。如果您这样做只有选择器组件将被重新选择而不是整个屏幕
如何让我的主要组件知道当前日期
- 您可以在yourSpecialDatePicker组件中添加一个名为callback的道具,以通知主组件日期值已更改
var datePicker = require/filepath .. /yourSpecialDatePicker)`;
class yourMainComponent extends Component {
constructor(props) {
super(props);
this.state = { };
this.currDate='';
}
render() {
return (
<ScrollView>
<datePicker callBack ={(value)=>{this.currDate=value}}></datePicker>
</ScrollView>
)
}
}
class yourSpecialDatePicker extends Component {
constructor(props) {
super(props);
this.state = {currentDate:'' };
}
render() {
return (
<DatePicker
date={this.state.currentDate}
mode="date"
placeholder="select date"
format="DD-MM-YYYY"
minDate="01-01-2015"
maxDate="01-01-2050"
confirmBtnText={I18n.t("confirm_button")}
cancelBtnText={I18n.t("login_page_scan_cancel")}
onDateChange={(date) => {this.setState({currentDate: date})
this.props.callBack(date)}}
/>
);
}
}
var datePicker=require/filepath/你的特别拣选者)`;
类yourMainComponent扩展组件{
建造师(道具){
超级(道具);
this.state={};
此.currDate='';
}
render(){
返回(
{this.currDate=value}}>
)
}
}
类yourSpecialDatePicker扩展组件{
建造师(道具){
超级(道具);
this.state={currentDate:''};
}
render(){
返回(
{this.setState({currentDate:date})
this.props.callBack(date)}
/>
);
}
}
什么是临时存储?@PeterGelderbloem将数据临时存储在用户填写完表单后提交。使用react将数据存储在state@PeterGelderbloem,我知道,我的问题是。是否有其他方法代替保存到状态?因为当您保存它以保存组件时,它是重新渲染的。您可以使用mobx在react组件外部存储状态