Javascript 如何修复';组件正在将文本类型的受控输入更改为非受控;在Reactjs中
我试图用钩子而不是类来制作一个计算器应用程序,它说没有任何受控组件在运行 我尝试从输入中删除“值”,但结果什么也没有显示Javascript 如何修复';组件正在将文本类型的受控输入更改为非受控;在Reactjs中,javascript,reactjs,Javascript,Reactjs,我试图用钩子而不是类来制作一个计算器应用程序,它说没有任何受控组件在运行 我尝试从输入中删除“值”,但结果什么也没有显示 function handleOperator() { console.log(isSubmitted) const f = [form.firstNum] const l = [form.lastNum] const Plus = f + l const Minus = f - l const Multiply = f * l
function handleOperator() {
console.log(isSubmitted)
const f = [form.firstNum]
const l = [form.lastNum]
const Plus = f + l
const Minus = f - l
const Multiply = f * l
const Divide = f / l
switch (Operator) {
case 'plus':
return setSum(Plus), setSubmitted(false)
case 'minus':
return setSum(Minus), setSubmitted(false)
case 'multiply':
return setSum(Multiply), setSubmitted(false)
case 'divide':
return setSum(Divide), setSubmitted(false)
default:
return null
}
}
function handleChange(event) {
const { name, value, type } = event.target
if (type === 'text') {
setForm({
form,
[name]: value
})
}
console.log(form.firstNum)
}
function handleSubmit(event) {
event.preventDefault()
setSubmitted(true)
}
return (
<div>
<p>{isSubmitted === true && Sum}</p>
<button name="Plus" onClick={() => { setOperator('plus'); handleOperator() }}>+</button>
<button name="Minus" onClick={() => { setOperator('minus'); handleOperator() }}> -</button >
<button name="Multiply" onClick={() => { setOperator('multiply'); handleOperator() }}>*</button>
<button name="Divide" onClick={() => { setOperator('divide'); handleOperator() }}>/</button>
<form onSubmit={handleSubmit}>
<input name="form.firstNum" type="text" value={form.firstNum} onChange={handleChange} />
<input name="form.secondNum" type="text" value={form.secondNum} onChange={handleChange} />
<br />
<button> = </button>
</form>
</div >
)
函数handleOperator(){
console.log(已提交)
常量f=[form.firstNum]
常量l=[form.lastNum]
常数Plus=f+l
常数负=f-l
常数乘法=f*l
常数除法=f/l
开关(操作员){
案例“附加”:
返回设置值(加),设置提交(假)
减号:
返回设置值(减),设置提交(假)
“乘法”情况:
返回setSum(乘法),SETSUBMITED(假)
“除名”一案:
返回setSum(除法),SETSUBMITED(假)
违约:
返回空
}
}
函数句柄更改(事件){
常量{name,value,type}=event.target
如果(类型=='text'){
刚毛({
形式,
[名称]:值
})
}
console.log(form.firstNum)
}
函数handleSubmit(事件){
event.preventDefault()
setSubmitted(真)
}
返回(
{isSubmitted==true&&Sum}
{setOperator('plus');handleOperator()}>+
{setOperator('减号');handleOperator()}>-
{setOperator('multiply');handleOperator()}>*
{setOperator('divide');handleOperator()}>/
=
)
我希望在键入第一个和最后一个数字时,单击要执行的操作,然后单击等号和它以显示答案。我还想解决这个错误,同时保持大部分代码的完整性。@Jayce444默认情况下,输入值设置为“”。好的,解决方案是将。。。在setForm下的“form”前面。