reactjs - 我在 Jest ReferenceError 中收到以下错误:未定义响应
问题描述
首先,我遇到了一个打字稿问题,我的模拟数据与响应类型不匹配。然后我尝试使用 Response 构造函数创建模拟数据并得到了那个错误。
我有以下代码
const HttpRequest = async function (
url: string,
options: RequestInit,
): Promise<Response> {
try {
return await fetch(url, options);
} catch (error) {
return null;
}
};
export default HttpRequest;
并进行以下测试:
const res = new Response();
window.fetch = jest.fn(
() => new Promise((resolve) => {
return resolve(res);
})
);
describe('HttpService', () => {
it('fetchWithFeedback', async () => {
const data = await HttpRequest('/api', { method: 'GET' });
expect(data).toEqual(res);
});
});
解决方案
改变
const changeField = (field, id, value) => {
const newPropertyData = { ...propertyData };
if (newPropertyData.id === id) {
newPropertyData.field = value;
}
};
至
const changeField = (field, id, value) => {
if (propertyData.id === id) {
setPropertyData({ ...propertyData, [field]: value })
}
};
您没有在 onChange 中更新您的状态,因此它永远无法更新仍然是“”的值。