【发布时间】:2020-03-15 11:47:11
【问题描述】:
一旦函数异步,我在链式.then() 中运行函数时遇到问题。
import React from "react";
import { Route, Switch } from "react-router-dom";
import Home from "./Home";
import Search from "./Search";
import * as BooksAPI from "./BooksAPI";
import "./App.css";
class BooksApp extends React.Component {
state = {
books: []
};
componentDidMount() {
BooksAPI.getAll().then(books => {
this.setState({ books: books });
});
}
changeShelf = (book, shelf) => {
BooksAPI.update(book, shelf);
BooksAPI.getAll().then(books => {
this.setState({ books: books });
});
};
render() {
return (
<div className="app">
<Switch>
<Route
exact
path="/"
render={() => (
<Home books={this.state.books} changeShelf={this.changeShelf} />
)}
/>
<Route
path="/search"
render={() => (
<Search changeShelf={this.changeShelf} books={this.state.books} />
)}
/>
</Switch>
</div>
);
}
}
export default BooksApp;
注释是针对这部分代码的:
changeShelf = (book, shelf) => {
BooksAPI.update(book, shelf);
BooksAPI.getAll().then((books) => {
this.setState({
books: books
})
})
}
render() {
return (
接下来,我向你展示我收到的评论:
【问题讨论】:
-
评论已经告诉你需要做什么,参考你已经写的其他代码。究竟是什么不清楚?
-
类似于你已经链接
BooksAPI.getAll().then()的方式。 -
嗨,@jonrsharpe,感谢您的反馈。我想要一个建议,因为我无法完全实现我以前做过的事情。我试过很多方法,都没有。也许有一些我没有看到的不同细节,我不知道。
-
我很困惑。该帖子显示了一条带有正确方法的评论。有什么问题?
-
@jose-renato-m 不用担心,我只是不确定这里缺少什么。看来你已经有了答案,不是吗?
标签: javascript node.js reactjs asynchronous