在我的应用程序中使用react-navigation时,我需要传递一些被认为是目标屏幕的const变量。
由于我们使用反应导航传递到目标屏幕的所有参数都是通过类似this.props.navigation.state.params.xxx
的方式访问的,我想知道如何标记这个变量中的一些" const"就像我们用props
初始化组件一样?
将此const变量存储在this.state
中非常令人困惑,尽管它是一个可行的选择,因为不应在屏幕内更改此变量。
更新
抱歉我的表情令人困惑。
核心问题是如何将反应导航传递的变量标记为常量。
我的意思是,我有一个名为' MainScreen'的屏幕类,现在我想导航到名为' SecondaryScreen'的另一个屏幕。通过反应导航。所以我写这样的代码:
const {navigate} = this.props.navigation;
navigate('SecondaryScreen', {
agentCode: this.state.agentInfo.agentCode,
queryDate: '20180101'
})
我希望agentCode是SecondaryScreen中的const,queryDate是一个变量。
因此对于SecondaryScreen中的queryDate,我写这个:
constructor(props: any) {
super(props)
var params = this.props.navigation.state.params
this.state = {
queryDate = params.queryDate
}
}
现在正确存储queryDate。但是agentCode呢?
如何将this.props.navigation.state.params.agentCode
存储为const类变量?
如果我自己启动SecondaryScreen,我可以使用
<Secondary agentCode={this.state.agentInfo.agentCode}>
通过这样做,可以通过辅助中的this.props.agentCode
访问agentCode。但是通过反应导航,我不知道如何实现相同的效果。
由于反应中的所有类变量都存储在props或state中,我想知道如何通过react-navigation将const传递给SecondaryScreen?
答案 0 :(得分:0)
您可以在组件安装时将其分配给const。
componentDidMount(){
const agentCode = this.props.navigation.state.params.agentCode;
}