javascript - SetState 被多次调用

标签 javascript react-native

我的 My DateTimePicker Widget 显示有问题!我编写了下面的代码,并且发生了此错误超过最大更新深度当组件重复调用 setState 时可能会发生这种情况我在自己的 .我在代码的两部分中定义了 SetState ,当我运行它时,它显示一个大日历,该日历设置的日期不是上面 state 中的第一个日期!!几秒钟后它显示错误..! 我在代码中定义了 3 个其他 view,在显示大 calendar 时未提及这些 view !!

constructor(props){
     super(props);
     this.state={
     selectedLabel:'4 mois',
     value : parseInt('2020-06-20')
                }

Show (value){
        this.setState({selectedLabel :value});
    }

render () {

                       <Picker style={{marginLeft:10,width:260}} 
                             selectedValue={this.state.selectedLabel} onValueChange={this.Show()}>
                            <Picker.Item label= "1 semaine"></Picker.Item>
                            <Picker.Item label=" 15 jours "></Picker.Item>
                            <Picker.Item label=" 1 mois "></Picker.Item>
                        </Picker>


                        <DateTimePicker
                             style={{width:200}}
                             mode="date"
                             value={this.state.value}
                             display="calendar" 
                             minimumDate={new Date((2300, 10, 20))}
                             onChange={(value)=>this.setState({value})}
                         />

最佳答案

那是因为每次组件呈现时您都会调用 setState。使用以下代码更改您的 Picker 处理程序:

onValueChange={(value) => this.Show(value)}

关于javascript - SetState 被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61604456/

相关文章:

javascript - Jquery每个函数,计算重复项

javascript - youtube 嵌入式视频不会落后于其他元素

javascript - 如何删除元素的结束标签,添加一些文本,然后重新添加标签?

javascript - 如何使用 Javascript 设置以美元符号结尾的属性?

ios - 打印 : Entry, ":CFBundleIdentifier", 不存在

unit-testing - 使用 Jest 测试 Realm react-native

php - 将不可读字符转换为 Unicode 字符

React-Native Modal 没有以指定的高度和宽度呈现

react-native FormData 上传不发送正确的数据

javascript - React Native FlatList keyboardShouldPersistTaps 不持久