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

React Native随机选下拉值传参至SubScreen2出现undefined问题

React Native 随机菜系值传递问题修复方案

问题根源

  1. React状态更新函数setValue无返回值,你将它的调用结果赋值给randomValue,必然得到undefined,导致传递给SubScreen2的参数无效。
  2. 错误地将数组传递给setValue,但当前下拉选择器为单选模式,value应为字符串类型而非数组。

修复后的核心代码调整

仅需修改HomeScreen中的setRandomValue函数:

const setRandomValue = () => {
  const randomIndex = Math.floor(Math.random() * items.length);
  // 先获取正确的随机菜系值(按需求使用label转小写或直接用item.value)
  const randomValue = items[randomIndex].label.toLowerCase();
  // 给下拉选择器更新状态(传递字符串而非数组)
  setValue(randomValue);
  console.log(randomIndex);
  console.log(randomValue);
  // 直接传递已获取的正确值,而非setValue的返回值
  navigation.navigate("SubScreen2", {paramKey: randomValue});
}

另外注意到items列表中存在拼写错误:{label:'Beverage', value:'Berverage'},建议修正为value:'Beverage',避免后续Firebase查询时出现数据不匹配。

额外说明

  • 状态更新是异步操作,不要依赖setValue执行后的value状态传递参数,直接使用提前获取的randomValue是最可靠的方式。
  • 若需将下拉选择器改为多选模式,才需要把value设为数组类型,此时setValue的参数才是数组,当前场景为单选,使用字符串即可。

内容的提问来源于stack exchange,提问作者L.Calvin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:10:47