[英]React - Getting "Component definition is missing display name" error when using React.memo
[英]Jest Snapshot error when using React.memo
我正在使用React.memo
(React 16.6.1)創建一個文件。
我使用jest 23.6進行快照。
// Work.js
import React, {memo} from "react";
const Work => (
/* codes */
);
export {Work as WorkNaked};
export default memo(Work);
保存組件渲染工作的快照時,它將呈現[object Object]
而不是<Work />
,這使得以后難以維護和調試。
// Container.js
import React, {Component} from "react";
export class Container extends Component {
render () {
return (
<Work />
);
}
}
// Container-test.js
describe("Container component", () => {
const wrapper = shallow(<Container />);
it("should render contents with a proper slug", () => {
expect(wrapper).toMatchSnapshot();
});
});
所以現在我們強制命名如下:
// Work.js
export {Work as WorkNaked};
const memoWork = memo(Work);
/* eslint-disable-next-line immutable/no-mutation */
memoWork.displayName = "memo(Work)";
export default memoWork;
這將在我們的快照中呈現<memo(Work) />
。
使用React.memo導出容器名稱時,是否有更好/更清潔/更簡單的名稱?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.