我有一个在我的某个页面上设置的状态变量,但我希望该状态值也可以在另一个页面上访问。不太清楚这是如何实现的。
例如在mainpage.ios.js
上public enum Optional<Wrapped> : ExpressibleByNilLiteral {
case none
case some(Wrapped)
public init(_ some: Wrapped) { self = .some(some) }
public init(nilLiteral: ()) {
self = .none
}
public var unsafelyUnwrapped: Wrapped {
get {
if let x = self {
return x
}
_debugPreconditionFailure("unsafelyUnwrapped of nil optional")
}
}
}
然后在otherpage.ios.js上我想根据上一页已设置的值更新。通过选项卡栏选择不同的页面。所以基本上这个值在所有页面之间都是有效的全局。
答案 0 :(得分:4)
要使用React Native在多个组件之间获得共享全局状态,您应该利用Flux实现。我个人更喜欢redux,但你可以使用你喜欢的任何一种。以下是使用React Native的redux示例:https://github.com/alinz/example-react-native-redux
答案 1 :(得分:2)
没关系,我发现了怎么做。对于任何不知道的人,我都是这样做的。据我所知,没有全局状态,你只需要将道具传递给每个页面组件。
因此,对于mainpage.ios.js,您需要otherpage.ios.js:
var OtherPage = require('./otherpage');
然后当你使用元素时,你包含了传递道具:
<OtherPage value={2}/>
或者
<OtherPage value={this.state.value}/>
然后在otherpage.ios.js上你可以根据需要引用该变量:this.props.value。