pass props in nested stackNavigator












1














I'm a beinner in React-Native and i'm using stackNavigator from react-navigation package to create a Wizard. But i can't pass parameters between different screens of stacks:



class TaskWizard extends React.Component {
constructor(props) {
super(props)
let {service} = this.getNavigationParams()
this.state = {
model : {service.fields}
}
}

getNavigationParams() {
return this.props.navigation.state.params || {}
}
}


const TaskWizardStack = createStackNavigator({
Wizard : {
screen : TaskWizard,
},
})


const PostTaskStack = createStackNavigator({
// some screens here then Task wizard
Deep : {
screen : Deep
}
TaskWizard : {
screen : TaskWizardStack
}
})
export default PostTaskStack


I know i can pass parameters to a screen like this from Deep component :



<View>
<TouchableOpacity
onPress={() => this.props.navigation.navigate('TaskWizard', {
service: {id : 1, fields : [{}]} },
})
/>
</View>


This will pass service parameter from inside of Deep component to TaskWizard Stack. I need to pass it from TaskWizard to every child screens like Wizard. Is it possible?










share|improve this question



























    1














    I'm a beinner in React-Native and i'm using stackNavigator from react-navigation package to create a Wizard. But i can't pass parameters between different screens of stacks:



    class TaskWizard extends React.Component {
    constructor(props) {
    super(props)
    let {service} = this.getNavigationParams()
    this.state = {
    model : {service.fields}
    }
    }

    getNavigationParams() {
    return this.props.navigation.state.params || {}
    }
    }


    const TaskWizardStack = createStackNavigator({
    Wizard : {
    screen : TaskWizard,
    },
    })


    const PostTaskStack = createStackNavigator({
    // some screens here then Task wizard
    Deep : {
    screen : Deep
    }
    TaskWizard : {
    screen : TaskWizardStack
    }
    })
    export default PostTaskStack


    I know i can pass parameters to a screen like this from Deep component :



    <View>
    <TouchableOpacity
    onPress={() => this.props.navigation.navigate('TaskWizard', {
    service: {id : 1, fields : [{}]} },
    })
    />
    </View>


    This will pass service parameter from inside of Deep component to TaskWizard Stack. I need to pass it from TaskWizard to every child screens like Wizard. Is it possible?










    share|improve this question

























      1












      1








      1







      I'm a beinner in React-Native and i'm using stackNavigator from react-navigation package to create a Wizard. But i can't pass parameters between different screens of stacks:



      class TaskWizard extends React.Component {
      constructor(props) {
      super(props)
      let {service} = this.getNavigationParams()
      this.state = {
      model : {service.fields}
      }
      }

      getNavigationParams() {
      return this.props.navigation.state.params || {}
      }
      }


      const TaskWizardStack = createStackNavigator({
      Wizard : {
      screen : TaskWizard,
      },
      })


      const PostTaskStack = createStackNavigator({
      // some screens here then Task wizard
      Deep : {
      screen : Deep
      }
      TaskWizard : {
      screen : TaskWizardStack
      }
      })
      export default PostTaskStack


      I know i can pass parameters to a screen like this from Deep component :



      <View>
      <TouchableOpacity
      onPress={() => this.props.navigation.navigate('TaskWizard', {
      service: {id : 1, fields : [{}]} },
      })
      />
      </View>


      This will pass service parameter from inside of Deep component to TaskWizard Stack. I need to pass it from TaskWizard to every child screens like Wizard. Is it possible?










      share|improve this question













      I'm a beinner in React-Native and i'm using stackNavigator from react-navigation package to create a Wizard. But i can't pass parameters between different screens of stacks:



      class TaskWizard extends React.Component {
      constructor(props) {
      super(props)
      let {service} = this.getNavigationParams()
      this.state = {
      model : {service.fields}
      }
      }

      getNavigationParams() {
      return this.props.navigation.state.params || {}
      }
      }


      const TaskWizardStack = createStackNavigator({
      Wizard : {
      screen : TaskWizard,
      },
      })


      const PostTaskStack = createStackNavigator({
      // some screens here then Task wizard
      Deep : {
      screen : Deep
      }
      TaskWizard : {
      screen : TaskWizardStack
      }
      })
      export default PostTaskStack


      I know i can pass parameters to a screen like this from Deep component :



      <View>
      <TouchableOpacity
      onPress={() => this.props.navigation.navigate('TaskWizard', {
      service: {id : 1, fields : [{}]} },
      })
      />
      </View>


      This will pass service parameter from inside of Deep component to TaskWizard Stack. I need to pass it from TaskWizard to every child screens like Wizard. Is it possible?







      react-native react-navigation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Aug 15 '18 at 9:37









      user3690884user3690884

      134




      134
























          2 Answers
          2






          active

          oldest

          votes


















          0














          Try using screenprops to pass the data to other components



          https://reactnavigation.org/docs/en/stack-navigator.html#navigator-props






          share|improve this answer





























            -1














            Code below works for me



                export const AdminBottomNavigator = createBottomTabNavigator(
            {Home: {screen: SchoolDashboard},
            Students: {screen: StudentList},
            Message: {screen: Dashboard},
            Settings: {screen: StudentList},},
            defaultNavigationOptions: ({ navigation }) =>
            ({tabBarIcon: ({ focused, horizontal, tintColor }) =>
            {let screenProps=navigation.getScreenProps();}})})





            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51856311%2fpass-props-in-nested-stacknavigator%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              0














              Try using screenprops to pass the data to other components



              https://reactnavigation.org/docs/en/stack-navigator.html#navigator-props






              share|improve this answer


























                0














                Try using screenprops to pass the data to other components



                https://reactnavigation.org/docs/en/stack-navigator.html#navigator-props






                share|improve this answer
























                  0












                  0








                  0






                  Try using screenprops to pass the data to other components



                  https://reactnavigation.org/docs/en/stack-navigator.html#navigator-props






                  share|improve this answer












                  Try using screenprops to pass the data to other components



                  https://reactnavigation.org/docs/en/stack-navigator.html#navigator-props







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Aug 15 '18 at 10:05









                  Yogaraj SaravananYogaraj Saravanan

                  1458




                  1458

























                      -1














                      Code below works for me



                          export const AdminBottomNavigator = createBottomTabNavigator(
                      {Home: {screen: SchoolDashboard},
                      Students: {screen: StudentList},
                      Message: {screen: Dashboard},
                      Settings: {screen: StudentList},},
                      defaultNavigationOptions: ({ navigation }) =>
                      ({tabBarIcon: ({ focused, horizontal, tintColor }) =>
                      {let screenProps=navigation.getScreenProps();}})})





                      share|improve this answer




























                        -1














                        Code below works for me



                            export const AdminBottomNavigator = createBottomTabNavigator(
                        {Home: {screen: SchoolDashboard},
                        Students: {screen: StudentList},
                        Message: {screen: Dashboard},
                        Settings: {screen: StudentList},},
                        defaultNavigationOptions: ({ navigation }) =>
                        ({tabBarIcon: ({ focused, horizontal, tintColor }) =>
                        {let screenProps=navigation.getScreenProps();}})})





                        share|improve this answer


























                          -1












                          -1








                          -1






                          Code below works for me



                              export const AdminBottomNavigator = createBottomTabNavigator(
                          {Home: {screen: SchoolDashboard},
                          Students: {screen: StudentList},
                          Message: {screen: Dashboard},
                          Settings: {screen: StudentList},},
                          defaultNavigationOptions: ({ navigation }) =>
                          ({tabBarIcon: ({ focused, horizontal, tintColor }) =>
                          {let screenProps=navigation.getScreenProps();}})})





                          share|improve this answer














                          Code below works for me



                              export const AdminBottomNavigator = createBottomTabNavigator(
                          {Home: {screen: SchoolDashboard},
                          Students: {screen: StudentList},
                          Message: {screen: Dashboard},
                          Settings: {screen: StudentList},},
                          defaultNavigationOptions: ({ navigation }) =>
                          ({tabBarIcon: ({ focused, horizontal, tintColor }) =>
                          {let screenProps=navigation.getScreenProps();}})})






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Dec 28 '18 at 5:42









                          Dima Kozhevin

                          2,02961834




                          2,02961834










                          answered Dec 28 '18 at 2:36









                          user2787951user2787951

                          11




                          11






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.





                              Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                              Please pay close attention to the following guidance:


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f51856311%2fpass-props-in-nested-stacknavigator%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Monofisismo

                              Angular Downloading a file using contenturl with Basic Authentication

                              Olmecas