You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Hooks设置初始日期后重进编辑页无法显示更新值如何处理

实现方案

你只需要给useState的初始值增加优先级判断逻辑:优先读取路由传递的date参数,参数不存在时才回退到18岁对应的默认日期即可,修改后的代码如下:

const [date, setDate] = useState(route.params?.date ?? new Date(Date.now() - (9467880 * 60 * 1000)));

如果你的应用中编辑资料页会被缓存(比如使用React Navigation时页面推入栈后不会销毁),还需要额外监听路由参数的变化,避免参数更新后state没有同步:

import { useEffect } from 'react';

// 原有state声明
const [date, setDate] = useState(route.params?.date ?? new Date(Date.now() - (9467880 * 60 * 1000)));

// 新增参数监听逻辑
useEffect(() => {
  if (route.params?.date) {
    setDate(route.params.date);
  }
}, [route.params?.date]);

注意事项

  • 从资料页跳转到编辑资料页时,必须把用户最新的出生日期作为路由参数传递,示例跳转代码如下:
    navigation.navigate('EditProfile', {
      date: 当前用户存储的最新出生日期变量
    })
    
  • 空值合并运算符??仅在route.params.date为undefined或null时才会使用后面的默认值,避免了0、空字符串等假值被错误覆盖的问题。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:00:07