Когда я использую onPress, я хотел бы установить оба этих состояния одновременно

#javascript #reactjs #react-native #react-redux #react-state-management

Вопрос:

Что я заметил, так это то, что любая из этих функций onPress работает при использовании в одиночку. Но я хочу, чтобы они оба произошли вместе. Как я мог это сделать?

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

Я хочу использовать setGroupSelected и setModalVisible одновременно. Весь блок кода, в котором используется приведенная выше строка, выглядит следующим образом

 lt;FlatList data={groups}   keyExtractor={item=gt;item.groupID.toString()}   renderItem={({item})=gt; lt;SelectionBoxComponent inputText={item.groupName}   onPress={()=gt;setGroupSelected(item.groupName) setModalVisible(false)} gt;   lt;/SelectionBoxComponentgt; }  /gt;  

Ответ №1:

Функции со стрелками в одну строку возвращают указанное значение без оператора return.

Попробуйте изменить это (проверьте изменение функции onPress)

 lt;FlatList data={groups}   keyExtractor={item=gt;item.groupID.toString()}   renderItem={({item})=gt; lt;SelectionBoxComponent inputText={item.groupName}   onPress={()=gt;setGroupSelected(item.groupName) setModalVisible(false)} gt;   lt;/SelectionBoxComponentgt; }  /gt;  

к этому

 lt;FlatList data={groups}   keyExtractor={item=gt;item.groupID.toString()}   renderItem={({item})=gt; lt;SelectionBoxComponent inputText={item.groupName}   onPress={()=gt; {  setGroupSelected(item.groupName);  setModalVisible(false);  }}gt;   lt;/SelectionBoxComponentgt; }  /gt;  

Комментарии:

1. Извините за сбивающий с толку способ объяснения возврата. Для упрощения возьмем этот пример:

2. (пункт) =gt; пункт.имя группы

3. вернет элемент.имя группы (обратите внимание, что инструкция о возврате отсутствует)

4. Большое вам спасибо за помощь. Ваш код мгновенно устранил мою проблему.