Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复';组件正在将文本类型的受控输入更改为非受控;在Reactjs中_Javascript_Reactjs - Fatal编程技术网

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”前面。