【发布时间】:2018-08-28 08:19:52
【问题描述】:
我正在学习 react 并想尝试创建一个加载组件,该组件显示加载文本,直到满足条件,即道具具有正确的信息。
问题是即使不满足条件,元素仍在加载:
主要成分:
import React from 'react';
const Loading = ({ condition, children }) => (<div>{condition ? children :
'Loading'}</div>);
export default Loading;
这是我使用加载组件的组件的渲染方法:
return
(<Loading condition={props.data && props.data.result && props.data.result.length > 1}>
<div> { ViewHelper.getCatalogItems(props.data) }</div></Loading>);
现在我的问题是我在调用 { ViewHelper.getCatalogItems(props.data) } 时遇到错误,因为 props.data 是未定义的,但是我希望如果 LoadingComponent 中的三元条件为假,加载组件不会调用该函数。
如果我将 ViewHelper.getData 更改为某个字符串值,一切似乎都可以正常工作并显示“正在加载”。
谢谢
【问题讨论】:
-
ViewHelper.getCatalogItems(props.data)是应该在那里调用,还是应该使用箭头函数? -
我希望它为一张桌子“映射”一堆项目。如果数据可用,我想我想在那里调用它,即加载条件解析为 true
-
你想渲染结果吗?
-
仅当数据可用时。所以如果 props.data 不是未定义的,那么我想调用该函数。我希望加载组件会确定是否使用三元来调用它,但它似乎都一样。
-
问题是你打电话给
props.data,不管它是否被定义。你能发布你的getCatalogItems函数吗?
标签: reactjs