首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ReactDOM.render之前更新redux-store (...)

在ReactDOM.render之前更新redux-store (...)
EN

Stack Overflow用户
提问于 2020-05-22 18:37:29
回答 2查看 96关注 0票数 0

有没有办法在ReactDOM.render之前更新Redux存储(...)是否已运行?像store.dispatch(...).then(() => ReactDOM.render(...))这样的东西

或者只是替换商店的整个“状态”的方法?

我正在使用React组件制作一个API,该API在另一个应用程序中与另一个框架Dojo一起使用。因此,我们使用ReactDOM.render(...)和ReactDOM.unmountCompoentAtNode(...)组件应该何时出现/消失。

因此,在API中,我重用了redux存储,因为即使通过ReactDOM.unmountComponentAtNode(...)卸载React组件,它也不会从内存/内存中删除。如果我没有重用存储,而是在每次React组件应该呈现时创建一个新的存储,那么“由Redux存储获取”的操作会越来越多地出现。因此,我希望确保在再次挂载组件之前刷新Redux存储。

EN

回答 2

Stack Overflow用户

发布于 2020-05-22 18:41:59

考虑到渲染状态应该依赖于redux存储,你见过redux-thunk吗?

一种方法是在向外访问API端点时显示微调器。在从API响应中设置状态之后,继续并显示实际组件。

票数 0
EN

Stack Overflow用户

发布于 2020-05-22 18:42:11

您正在以错误的方式处理解决方案。对于这个用例,我们在组件中使用了life cycle methods

代码语言:javascript
复制
ReactDOM.render(<App />, document.getElementById('root'))

在这段代码中,我呈现了App组件,为了解决您的问题,我将使用AppcomponentDidMount生命周期方法,并从那里分派API调用。

代码语言:javascript
复制
class App {
    componentDidMount() {
        dispatch(MY_ACTION)
    }
    render() {
        return (<h1>dummy</h1>)
    }
}

对于基于hooks的功能组件,您需要使用useEfect

代码语言:javascript
复制
const App = () => {
    useEffect(() => {
        dispatch(MY_ACTION)
    }, [])

    return (<h1>dummy</h1>)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61953085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档