如何在 React-Native 上的自定义导航选项中传递 this.state 值
How to pass this.state value in custom navigationOptions on React-Native
我是 React-Native 的新手,我正在尝试使用 React-Native 导航了解如何在我的自定义 header
中传递值
这是我的组件 A 与 CustomHeader 的外观
constructor(props) {
super(props);
this.state = {
sortId: 4
}
}
componentDidMount() {
this.props.navigation.setParams({
sortId: this.state.sortId
})
}
static navigationOptions = {
header: props => // Your custom header
<CustomHeader
sortId={props.navigation.params.sortId}
/>
};
在我的 CustomHeader 组件中,当我尝试显示这样的值时
export default class CustomHeader extends Component {
constructor(props) {
super(props);
}
componentWillMount() {
Alert.alert(this.props.sortId.toString());
}
它不工作,我收到错误:undefined is not an object (evaluating 'this.props.sortId')
但是当我像下面这样硬编码一个值时,它确实有效
static navigationOptions = {
header: props => // Your custom header
<CustomHeader
sortId={4} //this works
/>
};
知道如何传递参数吗?我错过了什么?我不明白如何向 props
添加参数并在导航选项中访问它们。
如果您需要访问 navigationOptions
的 params
,那么您需要将代码更改为
static navigationOptions = {
header: props => // Your custom header
<CustomHeader
sortId={props.navigation.state.params.sortId} //... state is missing
/>
};
如前所述here
我是 React-Native 的新手,我正在尝试使用 React-Native 导航了解如何在我的自定义 header
中传递值这是我的组件 A 与 CustomHeader 的外观
constructor(props) {
super(props);
this.state = {
sortId: 4
}
}
componentDidMount() {
this.props.navigation.setParams({
sortId: this.state.sortId
})
}
static navigationOptions = {
header: props => // Your custom header
<CustomHeader
sortId={props.navigation.params.sortId}
/>
};
在我的 CustomHeader 组件中,当我尝试显示这样的值时
export default class CustomHeader extends Component {
constructor(props) {
super(props);
}
componentWillMount() {
Alert.alert(this.props.sortId.toString());
}
它不工作,我收到错误:undefined is not an object (evaluating 'this.props.sortId')
但是当我像下面这样硬编码一个值时,它确实有效
static navigationOptions = {
header: props => // Your custom header
<CustomHeader
sortId={4} //this works
/>
};
知道如何传递参数吗?我错过了什么?我不明白如何向 props
添加参数并在导航选项中访问它们。
如果您需要访问 navigationOptions
的 params
,那么您需要将代码更改为
static navigationOptions = {
header: props => // Your custom header
<CustomHeader
sortId={props.navigation.state.params.sortId} //... state is missing
/>
};
如前所述here