从测试我的自定义Slider得到了act警告,没有副作用

问题描述

我从React Slider得到警告,完全没有副作用。

我的组件从材料UI中包装了onChange并为setState道具提供了处理程序。在处理程序中,仅调用Slider。我想知道import { mount } from 'enzyme'; import Slider from '@material-ui/core/Slider'; import React,{ useContext,useState } from "react"; const sliderContext = React.createContext(null); const MySlider = () => { const [value,setValue] = useState(0); const sliderController = useContext(sliderContext); const handleChange = (event,newValue) => { setValue(newValue); sliderController.callback(newValue); }; return ( <Slider min={0} max={1} step={0.01} value={value} onChange={handleChange} aria-labelledby="continuous-slider"> </Slider>); } describe('custom slider',() => { const mockSliderController = { callback: jest.fn() }; const mountSlider = ()=>{ return mount( <sliderContext.Provider value={mockSliderController}> <MySlider /> </sliderContext.Provider>) }; it('should trigger the event when the value of the slider changed',() => { const component = mountSlider(); const toggleValue = 0.5; component.find(Slider).props().onChange({},toggleValue); expect(mockSliderController.callback).toHaveBeenCalledTimes(1); expect(mockSliderController.callback).toHaveBeenCalledWith(toggleValue); }) }) 组件的实现中是否存在一些异步调用,以及如何完全模拟交互。

这是重现该问题的最小可执行代码

class Weeks {
final int index;
  final String udigree;
  final Stringd_id;
  final String activity_a;
  final String activity_k;
  final String title_a;
  final String title_k;
  Weeks(this.index,this.udigree,this.d_id,this.activity_a,this.activity_k,this.title_a,this.title_k);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)