react-native 传值
2017-01-04 10:29
169 查看
今天我来整理一下react-native页面传值的问题
我们分为三个方面,父组件向子组件传值,子组件向父组件传值,不同界面传值
一、父子组件传值
父组件
子组件
二、子组件向父组件传值
这里的传值,实质就是父组件向子组件传值时使用回调函数,使得子组件可以改变父组件的值。
父组件
var firstPage = React.createClass({
getInitialState:function(){
return (
firstState: false,
);
},
firstFunction:function(value){
this.setState({
firstState: value,
});
},
render:function(){
return(
<secondPage secondState={this.props.firstState} callBack={this.firstFunction(value)}/>
);
},
});
子组件
var secondPage = React.createClass({
getInitialState: function () {
return {
secondState: this.props.secondState,
};
},
render{
return(
<TouchableHighlight onpress={()=>{
var newState = !this.state.secondState;
this.setState({
secondState: newState,
});
// 这里要注意:setState是一个异步方法,所以需要操作缓存的当前值,
//需要即刻调用时可使用回调setSate({xx: xxx},()=>{});
this.props.callBack(newState);
}}>
<Text>{this.state.secondState?1:0}</Text>
</TouchableHighlight>
);
},
});
这里点击了子组件的按钮,父组件也会发生
三、不同界面之间传值
在两个界面之间传值要使用监听,监听有多种方法,这里不详细介绍
在componentDidMount(){}放置监听
在componentWillUnmount(){}消除监听
我们分为三个方面,父组件向子组件传值,子组件向父组件传值,不同界面传值
一、父子组件传值
父组件
var firstPage = React.createClass({ getInitialState:function(){ return ( firstState: false, ); }, render:function(){ return( <secondPage secondState={this.props.firstState}/> ); }, });
子组件
var secondPage = React.createClass({ render:function(){ return( <Text>{this.props.secondState?1:0}<Text> ); }, });
二、子组件向父组件传值
这里的传值,实质就是父组件向子组件传值时使用回调函数,使得子组件可以改变父组件的值。
父组件
var firstPage = React.createClass({
getInitialState:function(){
return (
firstState: false,
);
},
firstFunction:function(value){
this.setState({
firstState: value,
});
},
render:function(){
return(
<secondPage secondState={this.props.firstState} callBack={this.firstFunction(value)}/>
);
},
});
子组件
var secondPage = React.createClass({
getInitialState: function () {
return {
secondState: this.props.secondState,
};
},
render{
return(
<TouchableHighlight onpress={()=>{
var newState = !this.state.secondState;
this.setState({
secondState: newState,
});
// 这里要注意:setState是一个异步方法,所以需要操作缓存的当前值,
//需要即刻调用时可使用回调setSate({xx: xxx},()=>{});
this.props.callBack(newState);
}}>
<Text>{this.state.secondState?1:0}</Text>
</TouchableHighlight>
);
},
});
这里点击了子组件的按钮,父组件也会发生
三、不同界面之间传值
在两个界面之间传值要使用监听,监听有多种方法,这里不详细介绍
在componentDidMount(){}放置监听
在componentWillUnmount(){}消除监听
相关文章推荐
- react native StackNavigator 传值
- react-native 组件之间传值
- react-native 采用xxtea加密传值
- React Native 页面之间传值、回传数据
- React-Native-ListView、ListViewItem(子、父组件互相传值)
- React Native 页面之间传值、回传数据
- 《ReactNative实战讲义》React-native-router-flux框架篇---页面跳转与传值
- React Native 页面间传值总结
- react-native组件传值与封装
- React-native页面跳转传值实现
- React native从入门到深入 ---页面传值,父子组件传值
- react-native最新的ES6基于页面跳转和传值
- iOS.ReactNative-3-about-viewmanager-uimanager-and-bridgemodule
- 自学React-Native(二)之新建项目、运行packager、把程序跑起来
- React Native教程之Navigator的使用
- 第七章、 ReactNative与原生之间的接口交互
- ReactNative学习——react-native版本升级
- React-Native Demo 工程 TransformError babel-preset-react-native
- React Native 之 Style
- 从零开始 React Native (4) React入门_状态属性_生命周期