【发布时间】:2020-12-26 22:58:13
【问题描述】:
在我的应用中,我像这样使用 mapStateToPros:
const mapStateToProps = (state:any) => {
return {
cardsAndBalance: state.cardsAndBalanceReducer
}
}
在调试中,当我停在return 时,我可以看到我有一些处于状态的数据。
当我在 useEffect 函数中停止应用并检查 props 时,props 的值是 undefined
useEffect(() => {
console.log('useEffect')
let cardNumbers: number[] = []
const myCards = props.cardsAndBalance.cards;
if(myCards)
myCards.forEach((card: Card) => cardNumbers.push(card.number))
generatePaymentCodeForTavim(cardNumbers = [])
.then((res:any) => {
setBarCode(res.barCode);
})
.catch( (err:any) => {
console.log("error: " + err)
ToastAndroid.show("Error Occurrd - check logs", ToastAndroid.SHORT);
})
}, [])
这是我将组件连接到商店的方式:
export default connect(mapStateToProps)(PayWithTavimStep1);
这是整个组件:
const PayWithTavimStep1 = ({navigation}:{navigation:any}, props: any) => {
const [barCode, setBarCode] = useState('')
useEffect(() => {
console.log('useEffect')
//.......
}, [])
return (
<View style={styles.container}>
// Some views
</View>
)
}
export default connect(mapStateToProps)(PayWithTavimStep1
为什么我在useEffect中停止执行时props是未定义的?
【问题讨论】:
-
尝试在
useEffect之外记录 props 或将它们作为依赖项添加到useEffect。
标签: reactjs react-native redux react-redux mapstatetoprops