function InputArea(props) {
const [inputText, setInputText] = useState({
inputText: {text: ""}
});
function handleChange(event){
setInputText(event.target.value);
}
function handleClick(event) {
props.onSubmit(inputText);
setInputText({text: ""});
event.preventDefault();
}
return(
<div className="input-group w-50">
<input
type="text"
className="form-control"
onChange={handleChange}
ariadescribedby="button-addon"
value={inputText.text}
placeholder="Insert Item">
</input>
<div className="input-group-append">
<Button
id="button-addon"
color="dark"
style={{marginBottom: "2rem"}}
onClick={handleClick}>Add Item
</Button>
</div>
</div>
)
}
问题在于如何更新状态、如何使用状态以及如何初始化状态。
与类中的setstate
不同,使用钩子时,状态更新器的值不是合并而是替换,当您运行
setInputText({text: ""});
您的inputText将从其以前的结构中替换为
{
inputText: {text: ""}
}
const [inputText, setInputText] = useState({
text: ""
}); // initialise as an object
function handleChange(event){
setInputText({ text: event.target.value }); // update the state object with text field
}
function handleClick(event) {
props.onSubmit(inputText);
setInputText({text: ""});
event.preventDefault();
}
return(
<div className="input-group w-50">
<input
type="text"
className="form-control"
onChange={handleChange}
ariadescribedby="button-addon"
value={inputText.text}
placeholder="Insert Item">
</input>
<div className="input-group-append">
<Button
id="button-addon"
color="dark"
style={{marginBottom: "2rem"}}
onClick={handleClick}>Add Item
</Button>
</div>
</div>
)
问题内容: 我有一个简单的react组件,其形式相信可以控制一个输入: 运行我的应用程序时,出现以下警告: 警告:MyForm正在更改要控制的文本类型的不受控制的输入。输入元素不应从不受控制切换为受控制(反之亦然)。确定在组件的使用寿命中使用受控或非受控输入元素 我相信我的输入是有价值的,因此受到控制。我想知道我在做什么错? 我正在使用React 15.1.0 问题答案: 我相信我的输入是有价值的
在我看来,React-Hooks-useState非常适合模式选择使用props中的值或使用自己的状态,但是当我有条件地使用hook时,lint显示了一些错误。 工作示例 我尝试使用钩子,条件如下,但是使用eslint error
我得到了这个错误,我是新的反应。我看过其他帖子,但仍然不能解决这个问题。我们将不胜感激。谢谢 警告:组件正在更改要控制的电子邮件类型的未控制输入。输入元素不应该从不受控制切换到受控制(反之亦然)。决定在组件的生存期内使用受控还是不受控的输入元素。更多信息在输入(由编辑创建)中,在div(由编辑创建)中,在div(由编辑创建)中,在窗体(由编辑创建)中,在div(由编辑创建)中
使用ui textfield时出错 警告:TextField正在将text类型的受控输入更改为不受控。输入元素不应从受控切换到非受控(或反之亦然)。决定在组件的生存期内使用受控还是不受控输入元素
在大多数情况下,我们推荐使用受控组件来实现表单。在受控组件中,表单数据由React组件处理。另外一个可选项是不受控组件,其表单数据由DOM元素本身处理。 不同于对每次状态处理都需要编写事件处理函数程序,在不受控组件中,你可以使用ref从DOM获得表单数据。 例如,在不受控组件中,以下代码可以输入名字: class NameForm extends React.Component { const
问题内容: 几乎在每个ReactJS教程中,甚至在用于处理输入更改的官方文档中,都建议使用onChange。我们使用状态作为值,并通过onChange对其进行更改。这会在每个按键中触发渲染。所以, 渲染真的那么便宜吗? 输入值不保存在DOM中吗?因此DOM和VirtualDOM之间没有区别,因此尽管渲染发生了什么变化?(可能是错误的假设)。 出于娱乐和学习目的,我尝试了以下方法: 使用自定义函数和