在React Native中,当我在不同的屏幕之间移动时,我想使用全局变量
有没有人能帮我实现这个目标?
发布于 2018-12-17 14:27:40
您可以使用global关键字来解决此问题。
假设您想要将一个名为isFromManageUserAccount的变量声明为全局变量,您可以使用以下代码。
global.isFromManageUserAccount=false;
在像这样声明之后,您可以在应用程序中的任何地方使用此变量。
发布于 2016-02-26 04:27:05
设置通量容器
简单的例子
import alt from './../../alt.js';
class PostActions {
constructor(){
this.generateActions('setMessages');
}
setMessages(indexArray){
this.actions.setMessages(indexArray);
}
}
export default alt.createActions(PostActions);
商店看起来像这样
class PostStore{
constructor(){
this.messages = [];
this.bindActions(MessageActions);
}
setMessages(messages){
this.messages = messages;
}
}
export default alt.createStore(PostStore);
然后,侦听存储的每个组件都可以在构造函数中共享此变量,这就是您应该获取它的地方
constructor(props){
super(props);
//here is your data you get from the store, do what you want with it
var messageStore = MessageStore.getState();
}
componentDidMount() {
MessageStore.listen(this.onMessageChange.bind(this));
}
componentWillUnmount() {
MessageStore.unlisten(this.onMessageChange.bind(this));
}
onMessageChange(state){
//if the data ever changes each component listining will be notified and can do the proper processing.
}
这样,您可以在整个应用程序中共享您的数据,而无需每个组件相互通信。
发布于 2020-02-25 17:58:19
如果您只想将一些数据从一个屏幕传递到下一个屏幕,您可以使用navigation.navigate
方法传递它们,如下所示:
<Button onPress={()=> {this.props.navigation.navigate('NextScreen',{foo:bar)} />
在'NextScreen‘中,您可以使用navigation.getParam()
方法访问它们:
let foo=this.props.navigation.getParam(foo);
但是,如果要传递的变量不止两个,那么它可能会变得非常“混乱”。
https://stackoverflow.com/questions/35577551
复制相似问题