【发布时间】:2021-06-01 06:16:23
【问题描述】:
刚开始学习 React Native。目前我正在研究 createDrawerNavigator 。我很困惑如何将参数从一个屏幕传递到另一个屏幕(从 STOCKSCREEN 到 STOCKLIST/VOLUME ANALYSIS)。我参考this steps to do drawer navigation。在步骤的最后,它说明了应用参数,但我不知道将代码放在哪里......
StockScreen.js(主屏幕)
const StockNavigator = createDrawerNavigator({
StockList: {
screen: StockList, //HOW TO PASS PARAMETER (stock) TO THIS SCREEN?..
},
VolumeAnalysis: {
screen: VolumeAnalysis, //HOW TO PASS PARAMETER (stock) TO THIS SCREEN?..
},
},{
initialRouteName: "StockList"
});
class StockScreen extends React.Component {
constructor(props) {
super(props);
this.state = {
isFetched: false,
stock: null, //WANT TO PASS THIS AS PARAMETER
};
//I HAVE ADDED THIS ONE
this.props.navigation.navigate('VolumeAnalysis', { stock:'newStock' })
}
componentDidMount() {
let url = [urls.api.st, '3'].join('/') + '?gg=1'
fetch(url, {
headers: {
Accept: 'application/json',
},
credentials: 'same-origin',
})
.then((response) => {
if (!response.ok) throw Error([response.status, response.statusText].join(' '))
return response.json()
})
.then((body) => {
this.setState({
isFetched: true,
stock: body.data, // DATA POPULATED
})
})
.catch((error) => alert(error));
}
render () {
//DISPLAYING StockScreen DATA
}
}
VolumeAnalysis.js 接收参数(--HERE THE PARAMS KEEP GIVING ME NULL..)
render() {
const { navigation } = this.props;
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>{navigation.getParam('stock') }</Text>
</View>
)
}
非常感谢任何帮助,谢谢..
【问题讨论】:
标签: reactjs react-native react-native-flatlist react-native-navigation