【发布时间】:2017-06-06 02:42:08
【问题描述】:
我正在尝试编写一个笔记/组织应用程序,但遇到了一个令人沮丧的错误。
这是我的组件:
import React from 'react';
const Note = (props) => {
let textarea, noteForm;
if (props.note) {
return (
<div>
<button onClick={() => {
props.handleUpdateClick(props.selectedFolderId, props.selectedNoteId, textarea.value);
}}>
Update
</button>
<textarea
defaultValue={props.note.body}
ref={node => {textarea = node;}}
/>
</div>
);
} else {
return <div></div>;
}
};
export default Note;
就目前而言,每当我在便笺之间切换并使用来自 note.body 属性的新内容重新渲染便笺组件时,textarea 不会更改并保留上一个便笺中的内容。我已经尝试对文本区域使用 value 属性而不是 defaultValue 属性,这确实解决了在组件重新呈现时文本区域内容不改变的问题,但是当我这样做时,我不再能够在 textarea 字段中输入更新笔记
有谁知道一种方法,我既可以允许用户在文本字段中键入以更新笔记,又可以在我呈现不同的笔记时改变 textarea 的内容?
谢谢
【问题讨论】:
标签: html reactjs redux textarea