第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將多個(gè)函數(shù)合并為一個(gè)函數(shù)

如何將多個(gè)函數(shù)合并為一個(gè)函數(shù)

慕妹3242003 2023-02-24 16:13:37
我想知道我是否可以將以下功能優(yōu)化為一個(gè)或兩個(gè)功能而不是四個(gè)。這是代碼的鏈接  // Proceed to next step  const firstStep = (firstName, lastName) => {    setInputValue((prevState) => ({      ...prevState,      step: prevState.step + 1,      firstName: firstName,      lastName: lastName,    }));  };  // Proceed to next step  const secondStep = (email, password) => {    setInputValue((prevState) => ({      ...prevState,      step: prevState.step + 1,      email: email,      password: password,    }));  };  const thirdStep = () => {    setInputValue((prevState) => ({      ...prevState,      step: prevState.step + 1,    }));  };  const fourthStep = () => {    setInputValue((prevState) => ({      ...prevState,      step: prevState.step + 2,    }));  };
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

一種方法是制作一個(gè)函數(shù),給定步長增量計(jì)數(shù)和一個(gè)與現(xiàn)有狀態(tài)合并的新對象,調(diào)用setInputValue所需的組合對象:


const setStep = (newProps, stepIncrement) => {

  setInputValue((prevState) => ({

    ...prevState,

    ...newProps,

    step: prevState.step + stepIncrement,

  }));

};

然后代替firstStep(firstName, lastName),你可以做setStep({ firstName, lastName }, 1),等等。


由于您使用的是掛鉤,另一種選擇是使用單獨(dú)的狀態(tài)變量和函數(shù):


const [step, setStep] = useState(1);

const [firstName, setFirstName] = useState('');

// etc

const firstStep = (firstName, lastName) => {

  setFirstName(firstName);

  setLastName(lastName);

  setStep(step + 1);

};

const secondStep = (email, password) => {

  setEmail(email);

  setPassword(password);

  setStep(step + 1);

};

const thirdStep = () => setStep(step + 1);

const fourthStep = () => setStep(step + 2);


查看完整回答
反對 回復(fù) 2023-02-24
?
子衿沉夜

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

這是我試圖解決您的困境的方法。


const nextStep = (newValues, incrementCount) => {

setInputValue((prevState) => ({

  ...prevState,

  ...newValues,

  step: prevState.step + (incrementCount ? incrementCount : 1)

}));

};

您可以在此處查看完整代碼。



查看完整回答
反對 回復(fù) 2023-02-24
?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

在我看來


const step = ({ firstName = "", lastName = "", email = "", password = "", step = 0 }) => {

  setInputValue(prevState => ({

    ...prevState,

    step: prevState.step + step,

    firstName: firstName || prevState.lastName,

    lastName: lastName || prevState.lastName,

    email: email || prevState.email,

    password: password || prevState.password

  }));

};


查看完整回答
反對 回復(fù) 2023-02-24
  • 3 回答
  • 0 關(guān)注
  • 224 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)