我是React的新手,正在尝试学习如何将我拥有的类组件更改为功能组件。这个概念很有意义,但是我对如何在多个状态下执行操作感到困惑。
class PostListWrapper extends React.Component {
constructor(props) {
super(props);
this.state = {
displayCategory: "View All",
posts: props.posts,
postCategories: props.postCategories
};
this.setCategory = this.setCategory.bind(this);
}
setCategory(post_category) {
this.setState({
displayCategory: post_category
});
}
render() {
return <FilterSection setCategory={this.setCategory} state={this.state} posts={this.state.posts} />;
}
}
到目前为止,我有
const PostListWrapper = () => {
const [displayCategory, setDisplayCategory] = React.useState("View All");
const [posts, setPosts] = React.useState(posts);
const [postCategories, setPostCategories] = React.useState(postCategories);
const setCategory = () => setDisplayCategory(postCategories);
return (
<FilterSection setCategory={this.setCategory} state={this.state} posts={this.state.posts} />
);
}
我只是不确定如何处理const setCategory = () => setDisplayCategory(postCategories);
答案 0 :(得分:1)
在您的类版本中,post_category
是子组件传递给setCategory
的参数。在功能组件中,您已经具有一个更新程序功能,用于更新类别状态,状态分派功能setPostCategories
,因此请将该功能传递给以下人员:
<FilterSection setCategory={setPostCategories}
您也无需声明setCategory
变量-您可以将其完全删除。