javascript - 数据存在或不存在时渲染的最佳方式?

标签 javascript reactjs apollo react-apollo

我正在运行一个 graphql 查询,它会加载一些数据。我将该数据传递给一个组件,并传递一个我用来检查数据的函数。如果数据 block 存在则渲染传入的组件,如果不存在则渲染 null。

export const GET_VESSEL = gql`
  query vesselById($id: ID!) {
    vesselById(id: $id) {
      flagCode
      shipName
    }
  }
`;

const checkData = (data, component) => data ? component : null;

<div>
 {checkData(flagCode, <Flag code={`${flagCode}`} height="15" />)}
 {checkData(shipName, <p>${flagCode}</p>)}
</div>

我想知道是否有更简单的方法或者这是否是一个好方法?或者有什么建议。

最佳答案

最简单的解决方案是

{flagCode && <Flag code={flagCode} height="15" />}
{shipName && <p>${flagCode}</p>}

在有限的情况下需要 null,但您的示例不是其中之一。

关于javascript - 数据存在或不存在时渲染的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59959089/

相关文章:

websocket - Nuxt Apollo websockets 链接选项?

javascript - 如何在javascript中将零填充到我的多维数组中?

javascript - 生成确定排序排名的 JS 数组

javascript - 您可以将 Material-UI Link 与 react-router-dom Link 一起使用吗?

javascript - @apollo/react-hooks 中的 `useSubscription` 方法加载卡住

express - RESTDataSource - 如何知道响应是来自获取请求还是缓存

javascript - 如何在 Vue 中动态创建的组件上获取更新的 $refs?

javascript - 使 div 比它包含的 div 小 30px

javascript - Meteor忘记密码实现

reactjs - 在 Material-UI 面包屑导航中使用 React Router DOM 路由