javascript - 尝试从反应功能组件方法返回多个值
问题描述
我试图从下面的方法返回多个值,并得到一个错误,如语句中预期的属性分配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 };
};
property assignment is expected
并在下面的行中出现错误
return {(!completed || loading) && loadingElement, transformed }
解决方案
React v16.2 引入了另一种返回多个元素的方式。React.Fragment以 JSX 方式通过一个空标签抽象出来。请记住,JSX 语法不支持属性——如果需要,请使用详细的方式。不需要额外的组件,没有数组符号,没有键。好的!
你只需要在 return 语句中用 <React.Fragment> 标签包裹你的代码
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>
);
推荐阅读
- c++ - 在 C++ 的 void 函数中可以有很多参数吗?
- ocaml - 在 LearnOcaml 中编译代码时出现“堆栈空间不足”错误
- json - getent passwd 以正确格式输出为 json
- c# - C# 在两个控制器 ActionResults 之间失去价值
- visual-studio-mac - 你如何在 Visual Studio 2017 社区中查看 MAC 的完整错误
- javascript - 我可以让它只在某个变量为真时才执行点击事件吗?
- python - Python使用空格sep从csv读取数据,第一列除外
- azure-machine-learning-workbench - 在本地运行 Azure 机器学习服务管道
- macos - 如何从命令行在 Mac 上运行 MSTest 单元测试?
- javascript - 如何将多个类属性设置为一个对象的属性