React-native:Picker onValueChange setState 滞后,我需要 setTimeout 吗?
React-native: Picker onValueChange setState lagging, do I need a setTimeout?
在我的 React-native 项目中,我有一个选择器,它在幕后选择要在函数中使用的数组。
<Picker
style={styles.onePicker} itemStyle={styles.onePickerItem}
selectedValue={this.state.food}
onValueChange={(itemValue) => { this.setState({food: itemValue}); this.cuisine();}}
>
<Picker.Item label="Italian" value="Italian" />
<Picker.Item label="Chinese" value="Chinese" />
<Picker.Item label="Cajun" value="Cajun" />
<Picker.Item label="KFC" value="KFC" />
</Picker>
一切正常,但 setState 在函数 运行 之前未分配。在使用中,使用的数组是一个选择器 section/action 落后于显示的内容。
Pickers 需要 setTimeout 或反应中使用的任何东西是否正常?
我也试过在 cuisine 函数中传递 itemValue
this.cuisine(itemValue);
调用:
美食 = (数据) => { 函数内容 }
但在控制台或显示已传递数据的警报中我只得到
[object Object]
而不是实际值。
我对ES6和React的使用有点菜鸟
使用这个对我来说效果很好
<View>
<Picker
selectedValue={this.state.food}
onValueChange={(itemValue) => { this.cuisine(itemValue);}}>
<Picker.Item label="Italian" value="Italian" />
<Picker.Item label="Chinese" value="Chinese" />
<Picker.Item label="Cajun" value="Cajun" />
<Picker.Item label="KFC" value="KFC" />
</Picker>
<Text>{this.state.food}</Text>
</View>
现在在美食功能中
cuisine = (itemValue: any) => {
this.setState({food: itemValue});
console.log(this.state.food);
}
在我的 React-native 项目中,我有一个选择器,它在幕后选择要在函数中使用的数组。
<Picker
style={styles.onePicker} itemStyle={styles.onePickerItem}
selectedValue={this.state.food}
onValueChange={(itemValue) => { this.setState({food: itemValue}); this.cuisine();}}
>
<Picker.Item label="Italian" value="Italian" />
<Picker.Item label="Chinese" value="Chinese" />
<Picker.Item label="Cajun" value="Cajun" />
<Picker.Item label="KFC" value="KFC" />
</Picker>
一切正常,但 setState 在函数 运行 之前未分配。在使用中,使用的数组是一个选择器 section/action 落后于显示的内容。
Pickers 需要 setTimeout 或反应中使用的任何东西是否正常?
我也试过在 cuisine 函数中传递 itemValue this.cuisine(itemValue);
调用:
美食 = (数据) => { 函数内容 }
但在控制台或显示已传递数据的警报中我只得到
[object Object]
而不是实际值。
我对ES6和React的使用有点菜鸟
使用这个对我来说效果很好
<View>
<Picker
selectedValue={this.state.food}
onValueChange={(itemValue) => { this.cuisine(itemValue);}}>
<Picker.Item label="Italian" value="Italian" />
<Picker.Item label="Chinese" value="Chinese" />
<Picker.Item label="Cajun" value="Cajun" />
<Picker.Item label="KFC" value="KFC" />
</Picker>
<Text>{this.state.food}</Text>
</View>
现在在美食功能中
cuisine = (itemValue: any) => {
this.setState({food: itemValue});
console.log(this.state.food);
}