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
相关产品推荐
相关产品推荐

