iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
自我挑戰組

react.js 的學習筆記 (沒在用硬要學系列 第 13

day 13 useState 做雙向綁定

  • 分享至 

  • xImage
  •  

在react中要做雙向綁定,必須使用react API "noChange",不然資料會被綁死不能使用。

第一個範例

import React, { useState }  from 'react'
import './app3.scss';

export default function App3() {
    const [goname, goName] = useState({M_Name:'',S_Name:''});

    return (
        <div className="div_bg">
            <div className="main_bg">
                1.<input type="text" value={goname.M_Name} onChange={(e)=>goName({M_Name:e.target.value})}/>
                2.<input type="text" value={goname.S_Name} onChange={(e)=>goName({S_Name:e.target.value})}/>
                <div><h1>輸入值1:{goname.M_Name}</h1><h1>輸入值2:{goname.S_Name}</h1></div>
            </div>
        </div>
    )
}

範例:https://codesandbox.io/s/beautiful-bell-079os

https://ithelp.ithome.com.tw/upload/images/20200913/20110292UbBRvgGXGG.png

這樣寫雖然可以輸入,H1也可以顯示輸入的值,可是有一個很大的問題,每當輸入一個輸入值,另一個就會被清空,這樣不行,於是找了找解決方法找到下面這個方式。

import React, { useState }  from 'react'
import './app3.scss';

export default function App3() {
    const [goname, goName] = useState({M_Name:'',S_Name:''});

    return (
        <div className="div_bg">
            <div className="main_bg">
                1.<input type="text" value={goname.M_Name} onChange={(e)=>goName({...goname,M_Name:e.target.value})}/>
                2.<input type="text" value={goname.S_Name} onChange={(e)=>goName({...goname,S_Name:e.target.value})}/>
                <div><h1>輸入值1:{goname.M_Name}</h1><h1>輸入值2:{goname.S_Name}</h1></div>
            </div>
        </div>
    )
}

範例:https://codesandbox.io/s/busy-star-blh2d

https://ithelp.ithome.com.tw/upload/images/20200913/20110292IqFG0aJHhg.png


上一篇
day 12 寫一個白天晚上切換功能
下一篇
day 14 key的說明
系列文
react.js 的學習筆記 (沒在用硬要學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言