0

我有一个 react-editor-js 实例,允许用户输入一些博客内容。我的表单提交按钮在标题上,而不是在表单正文上。因此,我使用 redux 让那些按钮点击在我的表单中知道。

单击按钮时,isPublishing我的 redux 中的值会发生变化。我的表单正在使用const p = isPublishing(state=> state.test.isPublishing).

在这种情况下,刷新是邪恶的,因为它会重置我的 EditorJs 表单数据。如果我可以在不刷新页面的情况下听到更改,那就太棒了。我怎样才能实现它?提前致谢!

4

1 回答 1

0

感谢@Shyam 的解决方案。

我的假设useStateprops原因渲染是正确的。没有直接的方法可以避免它。

我在我的项目中使用 react-editor-js,这就是导致问题的原因

  <EditorJs
    instanceRef={()=>{//code to save the reference as state variable}}
    enableReInitialize
    data={{}}
    tools={EDITOR_JS_TOOLS}
  />

状态丢失的原因是instanceRef每次组件呈现时都会重新分配 my 。

可以通过使用 useCallback() 包装将引用保存为状态变量的方法来防止这种重新分配

于 2021-06-09T11:32:40.550 回答