gpt4 book ai didi

reactjs - React - 如何 stub 使用属性初始值设定项语法的组件方法?

转载 作者:行者123 更新时间:2023-12-03 13:36:42 27 4
gpt4 key购买 nike

我终于将我的组件从 React.createClass() 更新为 ES6 类。我在测试中看到的第一个错误是我的一些 sinon.stub() 调用失败,因为 jscodeshift -t react-codemod/transforms/class.js将我的组件方法转换为使用属性初始值设定项建议,即

class Foo extends React.Component {
componentWillMount() {
this.fetchSomeData(this.props);
}
componentWillReceiveProps(nextProps) {
if (nextProps.someProp !== this.props.someProp) {
this.fetchSomeData(nextProps);
}
}
fetchSomeData = (props) => {
...
};
render() {
...
}
}

我的问题是:如何使用这种新语法 stub fetchSomeData()?我的测试看起来像 sinon.stub(Foo.prototype, 'fetchSomeData'); ,它不再有效,假设因为 fetchSomeData 不再在原型(prototype)上。

谢谢!

最佳答案

在此示例中,fetchSomeData() 实际上确实附加到 this 而不是 Foo.prototype,因此绝对没有在创建实例之前对方法进行 stub 的方法。解决方法是将 fetchSomeData() 中的逻辑移动到可以被 stub 的不同位置。或者使用不同的语法来定义方法。

关于reactjs - React - 如何 stub 使用属性初始值设定项语法的组件方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43331611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com