采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,我在测试时遇到了一个问题, 咨询您一下。
就是有两个component A, B. A 和 B 都被您讲的withContext包起来。 其中B是A的子component。
当我测A时传了props, 也单独命名export A. 但是我monut(A), B中使用context(this.props.data.state…)的那一行报错Cannot read the property of ‘state’.图中那一行在B的文件中。
同学你好 看了你给的例子 Child 的一些值是从 context 里面取得,但是在测试的时候,我们并没有 context 赋值,肯定会造成 Child,比如你的例子中 this.props.data.state.items 这个 data 是从 context 传入的,但是在测试中,这个根本是不存在的。
两个解决方法,我都试了一下
1,在 test 中使用 context 来包裹
const wrapper = mount( <AppContext.Provider value={{ state: initData, }}> <Parent {...props} /> </AppContext.Provider> )
2, 直接把值当props 传给 child,child 就不要用 context 了
老师您好,我也试了一下,真的可以了。我们组就我一个前端,我也没经验,老师的课程帮助太大了,基本覆盖了所有业务,良心课程。非常感谢。
谢谢同学的支持 觉得有用可以给一个好评 ?
哈哈哈,必须好评。哎,突然发现,已经错过了写评价的机会了,是默认好评。
同学你好
在容器组件在测试的时候 和context 是无关的,所以任何需要的数据都需要从 props 中注入,看错误是你在初始化这个组件的测试的时候,并没有传入 props.data.state 属性。
老师您好 我知道我描述的比较抽象, 我刚刚写了一个小demo,能麻烦您看一下嘛?就是Parent和Child都用了Context, 我不知道测parent时怎么给child传数据。 https://github.com/Maggie216jie/parent-test 问题就在文件Parent.test.js的第22行。
没问题同学 感谢你的源代码 我下午看看欧
好的,不用急不用急,?谢谢。
登录后可查看更多问答,登录/注册
轻松上手,从设计图到上线,精通组件化思维和组件测试
1.2k 8
1.0k 8
1.1k 7
851 6
944 5