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

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

useReducer 中是否需要使用展開運算符?

useReducer 中是否需要使用展開運算符?

弒天下 2023-08-24 10:31:07
編輯:檢查布萊恩的答案后,我發現即使在第二個示例中,刪除...state也會導致與第一個示例相同的行為,所以這個問題問是錯誤的。我不確定是什么導致了錯誤的行為,并對造成的任何不便表示歉意。布萊恩的回答很好地解釋了用途。比較以下 2 個代碼片段,它們通過使用 一次更新 2 個狀態來完成相同的操作initialState,除了一個使用useState,另一個使用useReducer:useStateconst {useState} = React;const initialState = {  name: 'John',  age: 20};const Example = () => {  const [state, setState] = useState(initialState);  const handleName = () => {    setState({...state, name: 'Tom'});  }    const handleAge = () => {    setState({...state, age: 30});  }  return (    <div>      <p>{state.name}</p>      <p>{state.age}</p>      <button onClick={handleName}>        Click to change name      </button>      <button onClick={handleAge}>        Click to change age       </button>    </div>  );};ReactDOM.render(  <Example />,  document.getElementById("react"));<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script><div id="react"></div>如果在第一個示例中刪除...state,它將狀態設置為單個鍵/值對,因此不再起作用。我原以為第二個例子中會發生同樣的事情,但事實并非如此。第二個示例在刪除擴展運算符后效果很好。我對第二個例子有3個問題:擴展運算符有什么用?為什么刪除擴展運算符后它仍然有效?如果沒有擴展運算符也能正常工作,這是否意味著第二個示例中不需要擴展運算符?
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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