【发布时间】:2017-06-18 08:45:20
【问题描述】:
在可编辑的前置元素上,我仅在按下回车键时运行 onKeyDown 脚本以避免文本中出现不需要的 HTML 元素。
render({}, {content}) {
console.log("render: "+content);
return <p contenteditable onKeyDown={this.handleKeyDown}>{content}</p>
}
在handleKeyDown 函数中,段落内容被更改,并且正在调用setState(content: newText),以便再次呈现内容。这会导致新文本被写入两次。
当我输入“hello world”并在“hello”之后中断时,它将导致
“你好
世界你好
世界”
即使 handleKeyDown 和 render 函数记录了正确的字符串:
“你好
世界”
我在这里做错了什么?
【问题讨论】: