构建与用户输入相关的组件时,我完成的两种方法是使用带引用的受控组件或非受控组件。但是,一种方法可以通过声明将保持组件外部状态的变量并将其导出来完成。
export let input;
let setInput;
const Form = props => {
[input, setInput] = useState("");
const handleInput = e => setInput(e.currentTarget.value)
...
return <input value={input} onChange={handleInput} />
}
这会被视为不良做法吗?这有什么问题吗?
组件的状态应该是实例属性,通过在组件外部声明状态,可以限制每个组件实例具有其自己的状态
[如果您希望在整个App中使用状态,请考虑使用ContextAPI
或Redux