我正在制作简历构建器应用程序,整个结构几乎完成。
完整的工作代码和框:
这里我把每个部分的组件都做成了步进器,
索引.js
<form onSubmit={handleSubmit}>
<Stepper
steps={sections}
activeStep={currentPage}
activeColor="red"
defaultBarColor="red"
completeColor="green"
completeBarColor="green"
/>
{currentPage === 1 && (
<>
<BasicDetails />
<button onClick={next}>Next</button>
</>
)}
{currentPage === 2 && (
<>
<EmploymentDetails />
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<button onClick={prev}>Back</button>
<button onClick={next}>Next</button>
</div>
</>
)}
{currentPage === 3 && (
<>
<pre>{JSON.stringify(value, null, 2)}</pre>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<button onClick={prev}>Back</button>
<button onClick={handleSubmit}>Submit</button>
</div>
</>
)}
</form>
重现问题的步骤:
-> 在Step 1
Enter First Name
, Last Name
, 和Profile Summary
-> 点击Next
按钮进入下一步。
-> 然后单击后退按钮向后移动到Step 1
(当前在Step 2
)
- >这里的值First Name
,Last Name
是有,但在单独的文本编辑器输入的值丢失
请参考下图并输入文本编辑器值,以便更好地了解我面临的问题。
如果我们切换forth/back
步骤,单独的文本编辑器值就会丢失。但是输入的值存储在表单上下文中,而不是在文本编辑器框中呈现。
笔记:
文本编辑器是作为一个组件制作的,它用于Step 1
(用于个人资料摘要)和Step 2
(用于就业描述),在这两种情况下,在步骤之间切换时,在文本编辑器中输入的值会丢失。
分析:
根据我的理解,发生这种情况是因为在导航到其他步骤时,组件被重新渲染并且EditorContainer
组件被调用并在text_editor.js
其中给出
this.state = {
editorState: EditorState.createEmpty(),
};
所以它被创建为空。
那么如何控制组件不被重新渲染,以便在文本编辑器中输入的数据不会丢失。
请帮助我保留在文本编辑器中输入的值。非常感谢提前..