私は現在3ヶ月間反応ネイティブで作業していますが、何も解決せずにこの問題が数日間発生しています。ネストされたTabnavigatorに小道具を渡します
問題: StackNavigator内にネストされたTabNavigatorがあります。これらのナビゲーターのどちらも、ステートレスなコンポーネント内にある:コンポーネントの
const MyStackNav = StackNavigator({
Tabs:{
screen: TabNavigator({
Tab1: { screen: TabScreen1},
Tab2: { screen: TabScreen2},
Tab3: { screen: TabScreen3},
...(CONDITION ? { Tab4: {
screen: TabScreen4
}} : {})
})
}
StackScreen1:{
screen: StackScreenOne,
},
StackScreen2:{
screen: StackScreenTwo,
},
})
呼び出し:
class MainApp extends React.Component {
constructor(props)
{
super(props);
this.state = {
condition: false,
};
}
render() {
return (
<MyStackNav/>
);
}
}
はどのようにして、条件のためMyNavStack
コンポーネント内の状態変数に私のクラスMainApp
から条件を渡すことができますレンダリング? したがって、CONDITIONがtrueの場合にのみ、Tab4をレンダリングする必要があります。
クラスMainApp
の小道具を、たとえば最初のタブ画面に渡すにはどうすればよいですか?
ありがとうございます!で<MyStackNav condition={this.state.condition} />
MyStackNav
あなたが言うことができる:
I'veは既にこの方法、それを試してみましたが、私は常に、次のエラーメッセージが表示されます: "MyNavStack(...):有効なReact要素(またはnull)を返す必要があります。未定義、配列などの無効なオブジェクトが返されている可能性があります。 このエラーメッセージのルートは、mountComponentにあります! – Manzn
例えば 'StackNavigator 'をラップしてみてください。 ''したがって: {StackNavigator(/ * stuff * /)} span> – Hespen
現在、私は次のエラーメッセージが表示されています: "コンポーネントクラスが必要です、[オブジェクトオブジェクト]が見つかりました"。 私が見つけた唯一の解決策は、クラスが大文字で始める必要があるということです。 – Manzn