程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了来自 react-apollo 的模拟 <Query />大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决来自 react-apollo 的模拟 <Query />?

开发过程中遇到来自 react-apollo 的模拟 <Query />的问题如何解决?下面主要结合日常开发的经验,给出你关于来自 react-apollo 的模拟 <Query />的解决方法建议,希望对你解决来自 react-apollo 的模拟 <Query />有所启发或帮助;

我有以下组件:

import { query } from 'react-apollo';

const comp = ({ getquery,variables }) => {
  <query query={getquery} variables={{ ...variables }}>
    {({ loading,error,data }) => {
      if(loading){
          return <div>Loading...</div>;
      } else if(error){
          return <div>Error!</div>;
      }else{
          return <div>{data}</div>;
      }
    }}
  </query>;
};

目前正在运行

我在嘲笑这个时遇到了麻烦:

    {({ loading,data })

对于测试建议,我想模拟组件而不是创建模拟提供程序,我该如何模拟它?

解决方法

我找到了正确的方法。

这种组件被称为渲染道具组件更多信息here和here

模拟:

jest.mock("react-apollo",() => {
  const ReactApollo = require.requireActual("react-apollo");

  const Mymodule = {
    ...ReactApollo,Query: ({ children,...rest }) => (
      <mock-my-component {...rest}>
        {typeof children === "function"
          ? children({
              data: {user:"name"},loading: false,error: false,})
          : children}
      </mock-my-component>
    ),};
  return Mymodule;
});

This 博文对我获得正确答案有很大帮助。

大佬总结

以上是大佬教程为你收集整理的来自 react-apollo 的模拟 <Query />全部内容,希望文章能够帮你解决来自 react-apollo 的模拟 <Query />所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。