我的组件检查值是否已加载,如果没有获取数据..
@withRouter @inject('myStore') @observer
class Component extends Component {
componentDidMount() {
const { myStore, match } = this.props;
const { selected, fetch } = myStore;
console.log('DidMount with', selected, match.id);
if (!selected || selected.id !== match.id) {
fetch();
}
}
}
我测试......
test('call fetch if id is different from match', () => {
const props = { myStore: new MyStore(), match: { id: 321 } }
const spy = jest.spyOn(props.myStore, 'fetch');
props.myStore.selected = { id: 123 };
shallow(
<ClassRoomRobots.wrappedComponent {...props} />,
);
expect(spy).toBeCalledWith(321);
spy.mockReset(); spy.mockRestore();
});
这是一个简单的商店..
class MyStore {
@observable selected = undefined;
@action fetch() {
// Fetch data...
}
}
在我的测试中,组件使用
进行渲染DidMount UNDEFINED 321
为什么undefined
?我在这里想念的是什么?