小编And*_*ert的帖子

单击按钮渲染组件

我正在使用React-Redux构建一个琐事游戏应用程序,并且需要能够渲染一个TriviaCard组件,如果用户决定再次玩,它将启动一个新游戏.这是我的按钮......

所以,我有两个按钮,需要能够在我的handleSubmit函数中做这样的事情......

<button onClick={this.handleSubmit} name="yes">Yes</button>
<button onClick={this.handleSubmit} name="no">No</button>

handleSubmit = (event) => {
    const answer = event.target.name
    if (answer === "yes") {
        return <TriviaCard />
    } else {
        //Do nothing...
    }
}
Run Code Online (Sandbox Code Playgroud)

reactjs react-redux

1
推荐指数
1
解决办法
1852
查看次数

使用 sinon.fakeTimers 测试 setInterval() 不起作用?

我的 componentDidMount 中有一个操作,它在 30000 毫秒后从 Reddit 获取图像。我想测试这个但无法弄清楚?!?!有什么建议?

    componentDidMount() {
       this.getHumorEvery(30000)
    }

    getHumorEvery = async (ms) => {
        await this.props.getHumor()

        return setInterval(() => {
            this.props.getHumor()
    }, ms)
Run Code Online (Sandbox Code Playgroud)

所以 getHumor() 立即被调用。然后在 30000 毫秒后再次调用它,依此类推。

然后我的测试...

it('should refetch images every 30000 ms', () => {
    const clock = sinon.useFakeTimers();
    const getHumorSpy = sinon.spy();

    renderComponent(requiredProps({ getHumor: getHumorSpy }));
    clock.tick(30000)

    sinon.assert.calledTwice(getHumorSpy)
Run Code Online (Sandbox Code Playgroud)

})

测试失败,因为 getHumor 只被调用一次。setInterval() 永远不会被解雇?

setinterval sinon reactjs

1
推荐指数
1
解决办法
1593
查看次数

标签 统计

reactjs ×2

react-redux ×1

setinterval ×1

sinon ×1