首页 > 解决方案 > 是否可以在 Immer 的 product() 中设置状态?

问题描述

现在

await this.setState(produce(this.state, (draft) => {
    draft.item.is_loading = true;
}));
this.setState(await produce(this.state, async (draft) => {
    // is_loading is true now.
    const name = await get_name();
    draft.item.name = name;
    draft.item.is_loading = false;
}));

预期的

this.setState(await produce(this.state, async (draft) => {
    let name;

    draft.item.is_loading = true;

    // set state here first.

    name = await get_name();
    draft.item.name = name;
    draft.item.is_loading = false;
}));

我想在调用过程中设置状态produce()。可能吗?如果有什么好主意,请告诉我。谢谢。:D

那是因为我认为将两个块连接在一起更具可读性。特别是当我可以重用在前者中声明的变量时。它看起来很微不足道,但是源代码变得越复杂,对我来说就越不自然。

标签: reactjsimmutability

解决方案


推荐阅读