javascript - 在 React 中,如何根据传入的 props 动态渲染组件?

标签 javascript reactjs

我有一个要渲染的组件,它会根据传入的 props 进行不同的渲染:

const Label = ({ data, attribute, style, link }) => (
  <Link to={link} style={style}>{data ? `${data[attribute]}` : ''}</Link>
);

stylelink Prop 是可选的,所以我想根据它们是否存在以不同方式呈现组件 - 我能想到的唯一方法就是这样,但是 jsx 是错误的。 React 中的最佳实践是什么?谢谢。

const Label = ({ data, attribute, style, link }) => (
  if(link && style) { 
    <Link to={link} style={style}>{data ? `${data[attribute]}` : ''}</Link> 
  } else if (link) {
    <Link to={link}>{data ? `${data[attribute]}` : ''}</Link>
  }
  //...
);

最佳答案

我会做这样的事情:

const Label = ({ data, attribute, style, link }) => {
  if (link) {
    return (
      <Link to={link} style={style}>{data ? `${data[attribute]}` : ''}</Link>
    );
  }
  // ...
};

你应该能够安全地将 undefined 作为 style 属性传递

关于javascript - 在 React 中,如何根据传入的 props 动态渲染组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46481545/

相关文章:

javascript - 在 typescript 中查询 json 对象

javascript - 使用 react 测试库从 Jest 测试访问和修改 react 上下文

ReactJS 并发 SetState 竞争条件

javascript - 如果通过reactjs解析,点击不起作用

javascript - React - componentDidUpdate() 无法找到由 render() 方法渲染的 DOM 对象

reactjs - React Auth 状态和 Routes 。无法在 React-Router 内的 'replaceState' 上执行 'History'

javascript - 使用 JS 和 CSS 更改页面样式?

javascript - 网格偏移一

javascript - JSON编码数组

javascript - 没有 json 数据