大家好,
我正在上 React 类(class),我已将代码提交给审阅者。他只回复了我几条评论,有一条评论我无法解决。
评论如下:
Check if (query === this.state.query) to ensure you are not going to replace the contents to an old response
部分代码如下:
updateQuery = (query) => {
this.setState({
query: query
})
this.updateWantedBooks(query);
}
updateWantedBooks = (query) => {
if (query) {
BooksAPI.search(query).then((wantedBooks) => {
if (wantedBooks.error) {
this.setState({ wantedBooks: [] });
} else {
this.setState({ wantedBooks: wantedBooks });
}
})
} else {
this.setState({ wantedBooks: [] });
}
}
任何人都可以帮助我我应该做什么?
问候。
最佳答案
代码审查者是对的,如果用户输入了完全相同的查询,您真的不想替换响应。
您必须在某处存储用户最近搜索过的内容:
this.setState({ wantedBooks: [], query });
如果成功响应:
this.setState({ wantedBooks, query });
然后在进一步搜索的情况下检查它:
if (query && query !== this.state.query) {
// continue the search only if query is different that current
关于javascript - 如何确保我不会将内容替换为旧响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58864176/