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

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

在 setState 上使用 JavaScript Date 對象時,React hook

在 setState 上使用 JavaScript Date 對象時,React hook

大話西游666 2023-06-09 15:35:18
我已經使用 React hook 創建了一個日期對象,useState如下所示:  const [selectedDate, setselectedDate] = useState(new Date());我有一個更新對象日期的函數:  const handleDayChange = (increment) => {    let dateWillUpdate = selectedDate;    date.setDate(selectedDate.getDate() + increment);    setselectedDate(dateWillUpdate);  };對象已更新,但 UI 未更新。所以我嘗試了另一種方法,就是像這樣分配日期對象:let dateWillUpdate = {...selectedDate};但這給了我一個空對象:object:{}我正在使用此功能渲染日期:const renderDaySelector = () => {    return (      <View style={styles.selector}>        <View style={[styles.fieldContainer, { flex: 1 }]}>          <TouchableOpacity onPress={() => handleDayChange(1)}>            <MaterialCommunityIcons              name="chevron-up"              color={Colors.primary}              size={30}            />          </TouchableOpacity>          <View style={[styles.field]}>            <TextInput              style={styles.textField}              keyboardType="number-pad"              value={selectedDate.getDate().toString()}            />          </View>         ...    );  };我在函數組件的主要返回中調用它:return (...            <View style={styles.values}>{renderDaySelector()}</View>...)調用時如何讓 UI 更新handleDayChange()功能?謝謝。
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

你不應該直接改變你的狀態。在這種情況下,您需要創建一個新Date對象才能正確更新您的狀態。


您可以嘗試使用new Date()創建一個新對象作為:


let dateWillUpdate = new Date(selectedDate)


// or you use:

let dateWillUpdate = new Date(selectedDate.getTime())


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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