Javascript 在更新组件时添加类
我只想在更新组件时,而不是在安装组件时,将类添加到输入中。因此,每次开始编写输入时,我都要添加类:Javascript 在更新组件时添加类,javascript,reactjs,Javascript,Reactjs,我只想在更新组件时,而不是在安装组件时,将类添加到输入中。因此,每次开始编写输入时,我都要添加类:demo const-App=()=>{ 功能改变(e){ 设置状态(如目标值); } useffect(()=>{ document.getElementById('test').classList.add(“演示”) }, []); const[state,setState]=useState(0); 返回( \sd {state} ); } 导出默认应用程序; 如何使用我的代码实现这一点?我
demo
const-App=()=>{
功能改变(e){
设置状态(如目标值);
}
useffect(()=>{
document.getElementById('test').classList.add(“演示”)
}, []);
const[state,setState]=useState(0);
返回(
\sd
{state}
);
}
导出默认应用程序;
如何使用我的代码实现这一点?我建议将您的需求更直接地映射到代码,而不是试图破解
useffect
的行为。此外,我会避免进行DOM操作,而不仅仅是使用React进行操作,因为无法保证在渲染过程中保留相同的DOM元素:
const App = () => {
const [state, setState] = useState({ hasEdited: false, value: '' });
return (
<div className="main">
<input
id='test'
type="text"
className={state.hasEdited ? 'demo' : ''}
onChange={e => setState({ ...state, hasEdited: true, value: e.target.value })}
/>
<p>{state.value}</p>
</div>
);
}
const-App=()=>{
const[state,setState]=useState({hasdedited:false,值:“”});
返回(
setState({…state,hasdedited:true,value:e.target.value})
/>
{state.value}
);
}