亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

材質 ui 單選按鈕選擇 reactjs 中的上一個按鈕值

材質 ui 單選按鈕選擇 reactjs 中的上一個按鈕值

呼如林 2022-09-23 21:51:30
我已經添加了單選按鈕組到mareferjs應用程序,這里的問題是當我嘗試記錄值時,我得到前一個單選按鈕的值,而不是獲取當前按鈕的值。例如。假設當我點擊從然后這個日志。我不知道是什么導致了這個問題。allawaitedall我的代碼 const [radioValue, setRadioValue] = React.useState("all");function handleChangeRadio(event) {    const value = event.target.value;    setRadioValue(value);    console.log(radioValue);             <---- Here When i try to log the value. it shows the value of previous button.  }<RadioGroup              className={classes.radioGroup}              aria-label="status"              name="status"              value={radioValue}              onChange={handleChangeRadio}              row            >              <FormControlLabel                checked={radioValue === "all"}                value="all"                control={<Radio color="primary" />}                label="All"                labelPlacement="end"                className={classes.radioLabel}              />              <FormControlLabel                checked={radioValue === "approved"}                value="approved"                control={<Radio color="primary" />}                label="Approved"                labelPlacement="end"                className={classes.radioLabel}              />              <FormControlLabel                checked={radioValue === "awaited"}                value="awaited"                control={<Radio color="primary" />}                label="Awaited"                labelPlacement="end"                className={classes.radioLabel}              />              <FormControlLabel                checked={radioValue === "on_hold"}                value="on_hold"                control={<Radio color="primary" />}                label="On Hold"                labelPlacement="end"                className={classes.radioLabel}              />            </RadioGroup>
查看完整描述

2 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

使用 useState 掛鉤提供的更新程序的狀態更新是異步的,不會立即反映。


嘗試使用鉤子讀取值:useEffect()


useEffect(() => {

  console.log(radioValue)

}, [radioValue])


查看完整回答
反對 回復 2022-09-23
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您需要知道:


setState操作是異步的,并且為提高性能而進行批處理。這在設置狀態的文檔中有解釋。


但是為什么? 改變狀態并導致重新呈現。這可能是一項代價高昂的操作,使其同步可能會使瀏覽器無響應setState


因此,setState 調用是異步的,并且是批處理的,以獲得更好的 UI 體驗和性能。


如果我需要在之后做些什么怎么辦?setState


如果你有一個,你可以做你需要的里面,像這樣:React Class ComponentsetState callback


this.setState(newState, function(){

   // Do what it needs to be done after updating newState here

});

如果你有一個你需要用鉤子聽,并做你需要的事情,像這樣:React Functional Componentstate changeuseEffectuseEffect


useEffect(() => {

  // Do what it needs to be done after updating state here

}, [radioValue])


查看完整回答
反對 回復 2022-09-23
  • 2 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號