使用笑话和酶在 React 中编写单元测试。在检查组件状态时,它会抛出错误“ReactWrapper::state()只能在类组件上调用”。
import React from 'react';
import { mount } from 'enzyme';
import expect from 'expect';
import CustomerAdd from '../CustomerAdd'
import MUITheme from '../../../../Utilities/MUITheme';
import { ThemeProvider } from '@material-ui/styles';
describe('<CustomerAdd />', () => {
const wrapper = mount(
<ThemeProvider theme={MUITheme}>
<CustomerAdd {...mockProps}></CustomerAdd>
</ThemeProvider>
);
test('something', () => {
expect(wrapper.find(CustomerAdd).state('addNewOnSubmit')).toEqual(true);
});
});
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,CustomerAdd Component 是类组件。我不知道我的代码有什么问题。任何人都可以帮我解决这个问题吗?提前致谢。
我是 React 新手,在我的项目中使用 material-ui 日期选择器,来自此处的文档。在这我使用moment.js
datetimepicker 中的以下代码
import React,{ useState } from 'react';
import MomentUtils from 'moment';
import {
DatePicker,
TimePicker,
DateTimePicker,
MuiPickersUtilsProvider,
} from "@material-ui/pickers";
function DateTimePickers() {
const [selectedDate, handleDateChange] = useState(new
Date());
return (
<MuiPickersUtilsProvider utils={MomentUtils}>
<DatePicker value={selectedDate} onChange=
{handleDateChange} />
<TimePicker value={selectedDate} onChange=
{handleDateChange} />
<DateTimePicker value={selectedDate} onChange=
{handleDateChange} />
</MuiPickersUtilsProvider>
);
}
export default DateTimePickers;
Run Code Online (Sandbox Code Playgroud)
但显示错误
类型错误:utils.endOfDay 不是函数 getComparisonMaxDate node_modules/@material-ui/pickers/esm/_helpers/text-field-helper.js:23
20 | return date;
21 | }
22 |
> 23 | …Run Code Online (Sandbox Code Playgroud)