#javascript #reactjs #react-native
#javascript #reactjs #react-native
Вопрос:
У меня есть вкладка экрана, содержащая 2 компонента
Я хочу передать свой идентификатор параметра
this.props.navigation.navigate("TabsScreen2", {id: idFilm})
TabsScreen2 — это нижняя вкладка моего экрана
Моя нижняя вкладка
const MainStack = createStackNavigator();
const MainStackScreen = () => (
<MainStack.Navigator>
<MainStack.Screen
name="TabsScreen2"
component={TabsScreenFilmDetail}
options={{ title: "FilmDetail Screen title" }}>
</MainStack.Screen>
</MainStack.Navigator>
);
const TabsFilmDetail = createBottomTabNavigator();
const TabsScreenFilmDetail = (e) => {
console.log('e ', e.route.params )
return (
<TabsFilmDetail.Navigator>
<TabsFilmDetail.Screen name="FilmDetail" params={e} component={FilmDetailStackScreenNav} />
<TabsFilmDetail.Screen name="FavoriteList" component={FavoriteListStackScreenNav} />
</TabsFilmDetail.Navigator>
);
}
в моем журнале у меня есть мой идентификатор
, но как передать мой параметр моему <TabsFilmDetail.Screen name=»FilmDetail»>
Я пробую параметр params или другое свойство, и это не сработало.
Существует ли решение для передачи простого параметра?
спасибо за помощь
Комментарии:
1. Вы можете использовать передачу параметров в качестве initialParams
Ответ №1:
Я думаю, что правильное ключевое слово, которое вы ищете, — initialParams
Как это в одном из моих кодов
Поэтому я думаю, что в случае вашего кода вам нужно изменить это
<TabsFilmDetail.Screen name="FilmDetail" params={e} component={FilmDetailStackScreenNav} />
для этого
<TabsFilmDetail.Screen name="FilmDetail" initialParams={e} component={FilmDetailStackScreenNav} />
Ответ №2:
попробуйте это:
<TabsFilmDetail.Screen name="FilmDetail">
{(props) => <FilmDetailStackScreenNav {...props} e={e.route.params} />}
</Tab.Screen>
Комментарии:
1. Если я выполню ваше решение, у меня появится ошибка Uncaught Error: есть как ‘component’, так и ‘children’ реквизит для экрана ‘FilmDetail’. Вы должны передать только один из них. Решение с помощью <FilmDetailStackScreen . Имя экрана =»FilmDetail» initialParams={e.route.params} компонент ={FilmDetail} /> (initialParams) работает очень хорошо. Спасибо за вашу помощь