【发布时间】:2019-09-08 02:36:26
【问题描述】:
我有一个 SFC 组件。最近我有一个功能要添加,最简单的方法就是将我的连接组件嵌套在这个 SFC(无状态功能组件)组件中。
我可以让应用正常运行,但快照测试失败,因为快照中没有生成连接的组件。
日志:
- Snapshot
+ Received
@@ -95,10 +95,12 @@
>
+
+ <Connect(SomeComponent) />
</NavLink>
</div>
</li>
</ol>
</div>
一些组件:
class SomeComponent extends React.Component<IStateProps> {
public render() {// render code}
function mapStateToProps(state: IRootState): IStateProps {
return {// code}
export default connect<IStateProps>(mapStateToProps)(SomeComponent);
我对 React 还是很陌生。我不确定在 SFC 中嵌套有状态组件是否有意义,但这样做确实有效。只是测试失败了。
所以我的问题是
在 SFC 组件中嵌套有状态组件是否是一种好习惯?如果没有,应该有什么更好的方法?
如果这样可以的话,怎么做快照测试?
【问题讨论】:
-
你使用
shallow(),不是吗? -
@skyboyer 我正在使用ShallowRenderer
-
意料之中,shallow rendering works 就是这样。所以要么使用完整的渲染,要么处理它(并单独测试你的组件)。我相信以后的选择会更好。
标签: reactjs react-redux jestjs