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

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

React - 使用狀態(tài)來更新值,或不使用

React - 使用狀態(tài)來更新值,或不使用

藍山帝景 2023-11-11 21:24:45
我有一個有兩列的表格。左列是右列的建議值。我目前提供了來自單獨 API 調(diào)用的兩個值。這是有效的。這是當前的代碼:const dbContact = useDbContact(contact.Group); 這將設置當前值的值,contact.Group從傳遞到 API 調(diào)用的建議值。然后我稍后用它來調(diào)用表單輸入值:<Form.Row>     <Form.Group as={Col} controlId="currentSecName" className="mb-2">        <Form.Control type="input" name="1secname" value={contact.SecretaryName} readOnly />    </Form.Group>    <Form.Group as={Col} controlId="dbSecName" className="mb-2">        <Form.Control type="input" name="2secname" value={dbContact.SecretaryName} readOnly />    </Form.Group>    <Button className="PrimaryButton" size="sm">        Accept proposed    </Button>    <div class="divider" /></Form.Row>現(xiàn)在我已經(jīng)完成了所有這些工作,我的下一步是讓“接受”按鈕根據(jù)建議更新當前值。我的代碼是這樣的:const dbContact = useDbContact(contact.Group);const [dbSecName, setDbSecName] = useState(dbContact.SecretaryName)和<Form.Control type="input" name="2secname" value={dbSecName} readOnly /> 這將允許我更改狀態(tài)值“onClick”當我這樣做時,我得到'dbContact.SecretaryName is undefined'?,F(xiàn)在,我假設考慮到我在測試期間直接請求表單中的值,我很幸運在請求之前已填充該值,因此 API 調(diào)用可能存在問題。這是 API 調(diào)用:  async function getData(group) {    try {      const apiGroups = await API.graphql(graphqlOperation(queries.getNtig, { PK: "Group#" + group, SK: "Officers#2" }));      let listItem = await apiGroups.data.getNTIG;      let PK = await apiGroups.data.getNTIG.PK.split("#")[1];      let secJson = await JSON.parse(apiGroups.data.getNTIG.Secretary);      let id = 1;      let receivedItems = {        Id: id,        PK: PK,        SecretaryName: secJson.Name,      };      setList(receivedItems);    } catch (err) {}  }  useEffect(() => {    if (!isAuthenticated) {      return;    }    getData(group);  }, [isAuthenticated, group]);  console.log(list);  return list;}我希望有人可以幫助我糾正邏輯以便設置狀態(tài)值有效,或者更改表單輸入值的替代方法。
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經(jīng)驗 獲得超6個贊

我不確定這是否是正確的方法,但它有效,并且還解決了在重新渲染元素時、當狀態(tài)值因 API 調(diào)用而更改時更改不受控制的元素的額外問題。


這是我從 API 調(diào)用獲取值并最初設置狀態(tài)的地方:


 const dbContact = useDbContact(contact.Group);

 const [dbSecName, setDbSecName] = useState("");

然后,我使用 useEffect 和異步函數(shù)來等待 API 調(diào)用的值,并使用該值設置狀態(tài):


useEffect(() => {

    async function getDbContact() {

        let secName = await dbContact.SecretaryName;

        setDbSecName(secName);

        }

    getDbContact();

}, [dbContact.SecretaryName]);

然后我可以使用表單輸入中的值:


<Form.Control type="input" name="2secname" value={dbSecName || ""} readOnly />

顯然,我需要處理表單輸入中的狀態(tài)更改,但這現(xiàn)在應該很簡單。


我不是開發(fā)人員,所以如果有更好的答案出現(xiàn),我會很高興看到它?,F(xiàn)在看來,我自己的問題已經(jīng)解決了。


查看完整回答
反對 回復 2023-11-11
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號