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

React Native onPress如何同时触发setGroupSelected与setModalVisible状态更新

问题根因

你当前的写法不符合JavaScript箭头函数语法规范:当不使用花括号包裹箭头函数逻辑时,箭头函数仅支持单表达式执行,会自动返回该表达式的结果。你直接拼接了两个状态更新语句,JS解析时会抛出语法错误,导致两个逻辑都无法执行。

修复方案

推荐使用花括号包裹函数执行体的标准写法,将两个状态更新语句放在同一个函数块内,用分号分隔即可:

onPress={() => {
  setGroupSelected(item.groupName);
  setModalVisible(false);
}}

修复后的完整FlatList代码如下:

<FlatList    
  data={groups} 
  keyExtractor={item=>item.groupID.toString()}        
  renderItem={({item})=> (
    <SelectionBoxComponent 
      inputText={item.groupName} 
      onPress={() => {
        setGroupSelected(item.groupName);
        setModalVisible(false);
      }}  
    />
  )}
/>
可选写法(不推荐)

如果要简化写法不需要花括号,也可以用逗号运算符包裹两个表达式,代码会按从左到右顺序执行,但可读性较差,不建议在业务代码中使用:

onPress={() => (setGroupSelected(item.groupName), setModalVisible(false))}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:45:03