Reactjs 如何使用contenteditable元素存储状态更改?
如何使用contenteditable元素存储状态更改 这段代码很好地存储了它,但是光标变为元素的开头 我必须对光标位置进行编码,还是有一个简单的解决方案 不,我不会使用表单元素Reactjs 如何使用contenteditable元素存储状态更改?,reactjs,react-hooks,state,contenteditable,Reactjs,React Hooks,State,Contenteditable,如何使用contenteditable元素存储状态更改 这段代码很好地存储了它,但是光标变为元素的开头 我必须对光标位置进行编码,还是有一个简单的解决方案 不,我不会使用表单元素 import React, { useState } from 'react'; const About = () => { const [text, setText] = useState('Hallo'); return ( <div className="
import React, { useState } from 'react';
const About = () => {
const [text, setText] = useState('Hallo');
return (
<div className="about">
<h2>About</h2>
<div className="title column m-0"
contentEditable={true}
suppressContentEditableWarning={true}
onInput={(e) => { setText(e.target.innerHTML) }}
onBlur={(e) => { setText(e.target.innerHTML) }}
dangerouslySetInnerHTML={{ __html: text }}
></div>
</div >
)
}
export default About;
import React,{useState}来自“React”;
const About=()=>{
const[text,setText]=useState('Hallo');
返回(
关于
{setText(e.target.innerHTML)}
onBlur={(e)=>{setText(e.target.innerHTML)}
危险的赛汀能html={{{uuuuHTML:text}
>
)
}
导出默认值约为;
如果您只想存储更改,而不想拥有受控组件,则可以使用onInput
prop。它会将更改的文本存储到您的状态中
<div
contentEditable={true}
suppressContentEditableWarning={true}
onInput={e => setText(e.currentTarget.textContent)}
></div>
setText(e.currentTarget.textContent)}
>
注:光标失去焦点的原因是,当您
危险地查看HTML
时,基本上是在重新装入div
中的所有数据,包括光标位置。这就是不推荐使用这种方式设置HTML的原因之一。如果您只想存储更改,而不想拥有受控组件,则可以使用onInput
prop。它会将更改的文本存储到您的状态中
<div
contentEditable={true}
suppressContentEditableWarning={true}
onInput={e => setText(e.currentTarget.textContent)}
></div>
setText(e.currentTarget.textContent)}
>
注:光标失去焦点的原因是,当您
危险地查看HTML
时,基本上是在重新装入div
中的所有数据,包括光标位置。这就是以这种方式设置HTML的原因之一,不推荐。但是我从一开始的状态就有一个默认值吗?@AlexanderJuhl如果有一个默认值,你可以在div
中设置你想要的内容,比如:default value
。但是我从一开始的状态就有一个默认值吗?@AlexanderJuhl如果有一个默认值,你可以设置你想要的内容想要在您的div
中添加如下内容:默认值
。