在调用该函数并将值传递给它之后,我无法设置该函数内部变量的状态。
我不确定我在这里做错了什么,我尝试了很多不同的事情,看了很多不同的示例,但似乎无法使其正常工作。
这里是我正在调用的函数:
_onSectionListPress = function(id) {
const tempID = id;
this.setState({ jobId: tempID });
alert(this.state.jobId);
};
这是我在其中调用函数并将值传递给它的地方:
<FlatList
style={styles.jobs}
data={this.state.data}
renderItem={({ item }) => (
<TouchableOpacity
onPress={this._onSectionListPress.bind(this, item.id)}
>
<ListItem
title={`${item.text}`}
/>
</TouchableOpacity>
)}
keyExtractor={extractKey}
/>
我也尝试过不使用
onPress={ this._onSectionListPress(item.id) }
非常感谢您的帮助
答案 0 :(得分:2)
我认为您可能遇到的问题是setState
实际上是异步的。
将setState()视为请求而不是立即命令来更新组件。为了获得更好的感知性能,React可能会延迟它,然后在一次通过中更新几个组件。 React不能保证状态更改会立即应用。
setState
可以具有第二个参数,该参数是应用更改后的回调。尝试使用下面的代码,看看您是否还有更多运气:
_onSectionListPress = function(id) {
this.setState({ jobId: id}, () => alert(this.state.jobId));
};