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的道具,以通知主组件日期值已更改
在示例中,this.currDate值用于将日期分配给主组件中的值,但您不必这样做。您可以使用全局变量,也可以什么都不做,这取决于您自己。这里最重要的是基于组件的方法

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组件外部存储状态