gpt4 book ai didi

javascript - setState 不执行回调

转载 作者:行者123 更新时间:2023-11-28 10:36:52 25 4
gpt4 key购买 nike

我有一个选择过滤器,我想按类别过滤我的产品。状态已更新,但 setState 的回调未执行。基本上我想在状态改变时立即更新我的列表。代码第 31 行没有在 try block 中执行,也没有捕获任何错误。

HTML

<div className="col-md-4 w-25 mt-3 ml-5">
<Select
onChange={this.handleChange}
value={selectedCategory}
placeholder="Select Category"
options={categories}
/>
</div>

JavaScript

    handleChange = event => {
console.log(event.value);
this.setState({ selectedCategory: event.value }, () => {
try {
products.pipe(
map(products =>
products
.filter(
product => product.category === this.state.selectedCategory
)
.subscribe(products => {
console.log(products);
this.setState({
items: products,
isLoaded: true
});
})
)
);
} catch (error) {
console.error(error);
}
});
};

enter image description here

最佳答案

这段代码成功了,但仍然不知道为什么它不起作用。谁能解释一下吗?

handleChange = 事件 => {

      this.setState(
{ selectedCategory: event.value },
this.showFilteredProducts
);
};

showFilteredProducts() {
const filterItems = products.pipe(
map(products =>
products.filter(
product => product.category === this.state.selectedCategory
)
)
);
filterItems.subscribe(products => {
this.setState({
items: products,
isLoaded: true
});
});
}

关于javascript - setState 不执行回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60285453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com