реагировать на навигацию: перемещаться по внешнему компоненту | функция карты

Здравствуйте, я новичок в RN, и у меня небольшие проблемы с моей навигацией по реагированию. Я хотел бы писать коробки из массива. У каждого окна одинаковый путь навигации. Я предполагаю, что это проблема с навигацией по внешнему компоненту, но я не знаю, как это исправить.

КОД:

WriteTeams() {
    return teams_array.map(function(Teams, i){
        return(
        <View key={i}>
            <TouchableHighlight onPress={() =>
            this.props.navigation.navigate('TeamDetail')}>
                <Text>{Teams.TeamName}</Text>
            </TouchableHighlight>
        </View>
        );
    });
}
render(){
       <ScrollView>
           <View>
              <View>
                 {this.WriteTeams()}
              </View>
           </View>
       </ScrollView>
    }
}
const teams_array = [
  { TeamName: "Some team"},
  { TeamName: "Some team2"}
]

экран ошибки

Спасибо за каждый ответ.


person David Futera    schedule 21.01.2018    source источник


Ответы (1)


Сообщение об ошибке указывает, что объект навигации не передается в компонент как свойство.

Вам нужно будет передать объект навигации из функции рендеринга в компонент WriteTeams, чтобы сделать его доступным в вашем коде.

Я скопировал и изменил ваш код, чтобы помочь объяснить

WriteTeams(navigation) {
    return teams_array.map(function(Teams, i){
        return(
            <View key={i}>
                <TouchableHighlight
                    onPress={() => navigation.navigate('TeamDetail')}
                >
                    <Text>{Teams.TeamName}</Text>
                </TouchableHighlight>
            </View>
        );
    });
}
render(){
    return (
        <ScrollView>
            <View>
                <View>
                    {this.WriteTeams(this.props.navigation)}
                </View>
            </View>
        </ScrollView>
    )
}
const teams_array = [
    { TeamName: "Some team" },
    { TeamName: "Some team2" }
]
person Rob Walker    schedule 21.01.2018