[英]Update array of data using useState hook in React
我正在尝试在单击按钮后使用useState
钩子更新数组。 我了解到state
是异步更新的。 我试图通过在setMovies
使用 ES6 函数来更新状态,但这似乎不起作用。 我应该怎么做?
有人可以帮忙吗?
const [movies, setMovies] = useState([]);
const [movie, setMovie] = useState('');
...
const handleSearch = () => {
return axios({
method: "GET",
url: url
},
params: {
Title: movie,
},
})
.then(({ data }) => {
const { Hits } = data
setMovies(Hits)
})
}
const handleMovieChange = event => {
setMovie(event.target.value)
}
用户界面
<Grid container>
<Grid item>
<TextField onChange={handleMovieChange} label="Title" />
</Grid>
<Grid item>
<Button onClick={handleSearch}>
Search
</Button>
</Grid>
</Grid>
您的代码看起来正确。 我想这可能是您的返回格式有问题或hits
而不是Hits
。 你能登录看看它是否是小写,这是我以前经历过的吗?
const { Hits, hits } = data;
console.log("Hits:", Hits, hits)
setMovies(Hits)
您可能错过了TextField
的值,因此它无法存储最新的搜索词
<TextField value={movie} onChange={handleMovieChange} label="Title" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.