我对打字和反应还很陌生。我一直在尝试实现react-rewardsnpm库,除了一个问题之外,我已经解决了所有问题。

type Props = {}

class Surprisebutton extends Component<Props>{
    reward: any;

    render() {
        return (
            <Reward
            ref={(ref) => { this.reward = ref }}
            type='memphis'>
                <Button onClick={this.reward.rewardMe()} style={styles.button} variant="contained" color="primary">
                    Surprise!
              <FavoriteIcon style={{ marginLeft: 10 }} />
                </Button>
            </Reward>
        )
    }
}

在运行npm start之后,我得到一个错误,上面写着TypeError: this.reward is undefined。最好的解决方法是什么?

最佳答案

它与typescript无关。TS仅是编译器和链接器,而您将得到运行时错误。是这句话:

this.reward.rewardMe()

ref在组件完全装载后被分配,并且rewardMe()正在尝试立即调用它。这也是一个次要的错误。您不想使用()调用,否则函数将立即启动(并且永不停止)。
这条线应该是
<Button onClick={this.reward.rewardMe} style={styles.button} variant="contained" color="primary">

关于javascript - typescript :TypeError未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56177440/

10-11 14:05
查看更多