How to pass values to other component in React-Native-Router-Flux?

后端 未结 5 1570
误落风尘
误落风尘 2020-12-08 06:44

My code is:

...

 


...
com1.js         


        
相关标签:
5条回答
  • 2020-12-08 07:19

    Pass data through an Input,

       import React, { Component } from 'react';
       import { Text, View, TextInput, TouchableOpacity } from 'react-native';
       import { Actions } from 'react-native-router-flux';
    
       export default class Com1 extends Component {
       state = { text: '' };
          render() {
           return (
              <View>
                 <TextInput
                    value={this.state.text}
                    onChangeText={text => this.setState({ text })}
                />
        <TouchableOpacity onPress={this.onPressNext.bind(this)}>
       <Text>Get Data</Text>
        </TouchableOpacity>
        </View>
        );
    }
    
    onPressNext() {
        Actions.Com2({text: this.state.text });
    }
    }
    

    To get value in the second Page

       export default class Com2 extends Component {
    
          render() {
             return (
            <View>
             <Text>
              {this.props.text}
             </Text>
           </View>
        );
      }
     }
    

    You can refer to this link: https://react-native-solutions.blogspot.com/2018/07/passing-data-between-screens-in-react.html

    0 讨论(0)
  • 2020-12-08 07:25

    Use push method as below:

    Actions.push('your key name',{prop you want to pass})
    

    It pushes the scene to the stack, performing a transition to the new scene.

    0 讨论(0)
  • 2020-12-08 07:36

    In addition to that, (and for those in the comments who said it didn't work) you may want to try below. When you pass the

    Actions.com2({text : 'Hello World'});
    

    Com2 should pass 'props'

    const Com2 = (props) => {
       return ( <View ...
        {props.text}
       ... />
    );
    
    0 讨论(0)
  • 2020-12-08 07:36

    you can use Actions with props

    onPress={() => Actions.com2({title: 'some title'})}
    

    and then in com2 you can retrieve the data like that

    this.props.title
    

    or you can use push property

     Actions.push('com2',{title: 'some title' } );
    

    then retrieve it in com2 also like that

    this.props.title
    
    0 讨论(0)
  • 2020-12-08 07:44

    You can pass data like this:

    Actions.com2 ({text: 'Hello World'})

    You can recover your data in com2 like this:

    this.props.text

    You can go to the next tutorial for more information:

    https://github.com/aksonov/react-native-router-flux/blob/master/docs/v3/MINI_TUTORIAL.md

    0 讨论(0)
提交回复
热议问题