【问题标题】:props are undefined when using mapStateToProps使用 mapStateToProps 时未定义道具
【发布时间】: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


【解决方案1】:

问题是我将两个参数传递给我的组件:({navigation}:{navigation:any}, props: any)。当它应该是(props: any) 时,现在在我的道具中我仍然可以访问导航。

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2018-10-18
    • 2020-07-06
    • 2019-01-15
    • 1970-01-01
    • 2018-10-20
    相关资源
    最近更新 更多