javascript - 当我使用 setstate 调用函数时,状态值不会改变
问题描述
addTOList= (id) =>{
const movieId = id
const movie = movies.find( ({ id }) => id === movieId );
const stateMovie = [...this.state.movie, movie]
console.log(stateMovie)
this.setState({
movie : stateMovie
})
console.log(this.state.movie)
localStorage.setItem('movies', JSON.stringify(this.state.movie))
this.state.movie.map(mov =>{
})
}
单击(添加到列表)按钮时将触发此功能。但是我必须单击两次才能更改状态。`对于糟糕的英语感到抱歉
解决方案
setState 是一个异步函数,它不会以异步方式设置状态,但是稍后,如果您想在设置状态运行后运行代码片段,则可以使用回调函数:
addTOList = () => {
this.setState({
movie : stateMovie
}, () => {
console.log(this.state.movie)
})
}
推荐阅读
- github - 为什么文件重复?帮助我使用 GitHub 操作
- vba - 根据值在报表中的特定位置添加文本框
- google-api - 通过 Oauth2 下载 Google Drive 文件
- python - 使用 to_csv 函数时 pandas 的错误文本
- python - 多行正则表达式匹配检索行号和匹配
- macos - 错误 MSB3073:命令“chmod +x for chromedriver”在 MAC OS 上以代码 255 退出
- python - Ebay scraper 制作了一个数据框,但不能将这些数字用于未来的图形
- apache-kafka - 发布者/订阅者模型消费者扩展和一致性
- c# - Azure 和 C++ DLL 文件
- handlebars.js - Shopify - Handlebars 的捕获结果在液体中不相等,如果