我的狀態值應該重新渲染整個組件,這應該再次將我的其他狀態值設置為默認值,但它沒有發生

亞特凡
import React from "react"


export default function Components() {
    const PI = 3.14
     
    const [value, setValue] = React.useState("")
    const [inputvalue, setInputvalue] = React.useState(0)

    function calculation() { 
        const originalvalue = PI * inputvalue * inputvalue

        setValue(`${originalvalue} cm^2`)
        console.log(value)
    }
    
    function getInput (event) {
        setInputvalue(event.target.value)
        
    }   

    console.log("main")

    return (
        <div className="output">
            <h4>Enter the r of the circle below in cm</h4>
           
           <input onChange={getInput} type="number"  name="input"/>

           <button onClick = {calculation}> Show Area</button>

           <p>Area of the circle is : {value}</p>
        </div>

    )
}

因此,每當我輸入一個數字時,我的組件都會重新呈現(我用控制台日誌檢查過它),但我的輸出值是一個狀態值(圓圈的面積是:{value})仍然保留在頁面上。相反,當組件重新渲染時,需要再次將其分配為“”。但它沒有發生,我的代碼運行良好。我只是想了解這怎麼可能

湯姆

getInput正在更新inputvalue,而不是value

要讓您的輸入元素的 onChange 處理程序更新 UI 內容,getInput需要更像:

function getInput (event) {
    setValue(event.target.value)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章