javascript - 尝试从 react 功能组件方法返回多个值

标签 javascript reactjs ecmascript-6 react-hooks

我试图从下面的方法返回多个值,并收到一个错误,例如 return 语句中预期的属性分配,我的方法如下所示,

export const useSectionQuery = (query, resultFieldName, updateState, transform, initialRevisionId) => {

  const [completed, setCompleted] = useState(false);
  let  transformed;
  const { loading, error } = useQuery(query, {
    variables: {
      where: initialRevisionId ? { initialRevisionId } : { isApproved: true },
      order_by: null
    },
    fetchPolicy: 'network-only',
    onCompleted: data => {
     transformed = transform ? transform(data[resultFieldName]) : data[resultFieldName];
      updateState(draft => {
        draft[resultFieldName] = transformed;
      });
      setCompleted(true);
    }
  });
  if (error) return errorRedirectElement(error, resultFieldName);
  return {(!completed || loading) && loadingElement, transformed };
};

并在下面的行中收到错误需要属性分配

 return {(!completed || loading) && loadingElement, transformed }

最佳答案

React v16.2 引入了另一种返回多个元素的方式。 React.Fragment仅通过一个空标签以 JSX 方式抽象。请记住,JSX 语法不支持属性 - 如果需要,请使用详细的方式。不需要额外的组件,没有数组符号,没有键。不错!

您只需在返回语句中使用 标记包裹代码

const App = () => (
  <React.Fragment>
    <p>React 16 can return multiple elements ❤️</p>
    <p>React 16 can return multiple elements ❤️</p>
    <p>React 16 can return multiple elements ❤️</p>
  </React.Fragment>
);

关于javascript - 尝试从 react 功能组件方法返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60781856/

相关文章:

javascript - 如何创建多个日期选择器

php - 如何在浏览器关闭时删除 session cookie

reactjs - 如何让 TypeScript 通过 Typescript 中的多个高阶组件推断类型?

javascript - 如何在 Apollo GraphQL 解析器上的一个函数中解析 2 个不同的方法?

javascript - 箭头函数中的地址 JS ES6 Map

javascript - 如何对未在对象中声明的函数使用对象简写

javascript - 将选定的vue值获取到数据返回中

Javascript:什么是回调?

javascript - axios post数组数据

javascript - 在 react 循环中附加事件监听器