Есть ли способ сделать навигацию onpress внутри результата карты массива в реагирующем? - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть простой массив имен в this.state.members.Я использовал функцию карты для итерации членов.Я хочу добавить кнопку для каждого участника, поэтому, когда я нажимаю на них, я перехожу на экран, посвященный каждому участнику.Я проверяю кнопку на петле, она работает.Но для тех, кто находится внутри функции карты, она говорит: «undefined - это не объект (оценивает« _this2.props.navigation ») onPress», я потратил целый день, пытаясь понять, что происходит без какой-либо удачи.Любая помощь будет оценена.Вот мой код

import { StyleSheet, Text, View } from "react-native";
import { ListItem, Button } from "react-native-elements";

export default class ProfileScreen extends React.Component {
 static navigationOptions = {
   header: null
 };

 constructor(props) {
   super(props);
   this.state = {
     members: ["Allie", "Gator", "Lizzie"],
     id_groupe: "",
     groupe: ""
   };

   // this.handleSubmit = this.handleSubmit.bind(this);
 }
 render() {
   const members = this.state.members;
   const namesList = members.map(function(name, i) {
     return (
       <Button
         onPress={() => this.props.navigation.navigate("Home")}

         title={name}
         key={i}
       />
     );
   });

   return (
     <View style={styles.container}>
       <View>{namesList}</View>
       <View>
         <Button
           title="Back to home"
           onPress={() => this.props.navigation.navigate("Home")}
         />
       </View>
     </View>
   );
 }
}

const styles = StyleSheet.create({
 container: {
   flex: 1,
   backgroundColor: "#fff",
   alignItems: "center",
   justifyContent: "center"
 }
});

1 Ответ

0 голосов
/ 04 февраля 2019

просто используйте функцию стрелки, и у вас не будет проблемы this.Но не уверен насчет вашей реальной проблемы, если функция стрелки работает, давайте проверим, есть ли у вас другие проблемы.Функция стрелки при итерации с картой:

const namesList = members.map((name, i) => {
     return (
       <Button
         onPress={() => this.props.navigation.navigate("Home")}
         title={name}
         key={i}
       />
     );
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...