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

React Native首次调用栈导航时传递空数组问题求助

问题原因

React 的 setState(包括 useState 的更新函数)是异步执行的。你调用 setdata 后,当前作用域里的 data 并不会立刻更新为新值——首次点击时 data 还是初始的空数组,所以传给 Home 页面的就是空数组。

解决方案

直接使用你刚构造的新数组,同时用于更新 state 和传递导航参数,不用依赖异步更新后的 state:

const showdata = ()=> {
  // 先构造新的数组
  const newData = [...data, {
    user: username,
    email: email,
    password: password,
  }];
  // 更新state
  setdata(newData);
  // 直接传递新数组
  navigation.navigate('home', {
    showdata: newData,
  });
};

这样不管是首次还是后续点击,传递给 Home 的都是最新的包含新数据的数组,能立刻完成渲染。

额外修复

你的 Home 组件代码里有语法错误:renderItem 的返回值里多了多余的 your text,会导致渲染失败,需要删掉:

// 修正后的 renderItem 返回内容
return (
  <View style={{margin:20}}>
    <Text>UserName: {item.user}</Text>
    <Text>Email: {item.email}</Text>
    <Text>password: {item.password}</Text>
  </View>
)

内容的提问来源于stack exchange,提问作者Ahmed Ali Soomro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:43:12