问题描述
我从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 (将#修改为@)