博客 / 詳情

返回

React中<select/>設置defaultValue不生效?

問題

這樣一種寫法下,defaultValue是不會生效的。

function Test() {
    const [dv, setDv] = useState(0)

    // 在某個元素的點擊回調中setDv()
    // foo.onClick = () => {setDv(bar)}

    return(
        <select
            defaultValue={dv}
        >
            <option value='1' >1</option>
            <option value='2' >2</option>
            <option value='3' >3</option>
        </select>
    )
}

解決

<select/>加個動態key強制執行渲染。

function Test() {
    const [dv, setDv] = useState(0)

    // 在某個元素的點擊回調中setDv()
    // foo.onClick = () => {setDv(bar)}

    return(
        <select
            key={Date.now()}
            defaultValue={dv}
        >
            <option value='1' >1</option>
            <option value='2' >2</option>
            <option value='3' >3</option>
        </select>
    )
}
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.