【问题标题】:React: Trying to render props that populate AFTER renderReact:尝试渲染在渲染后填充的道具
【发布时间】:2017-06-02 01:29:11
【问题描述】:

在我的 React 应用程序中,我想渲染一个 prop 值,但在渲染完成后更新 props 之前它不存在。

this.props.users 是一个对象,所以我使用Object.keys() 转换为一个数组,然后使用键映射子元素来定位它们:

// ...
render() {
   return {
     <div className='users-list'>
        <h4>Users List</h4>
        {!isLoaded(users) ? '' :
           Object.keys(users).map( (key, i) => <p>{users[key].email}</p> )
        }
     </div>
   }
}

这行得通,但我花了很多时间修改和修改代码才能到达那里。有没有更好/更有说服力的方法来解决这个问题?因为我想这真的很常见!组件生命周期是否进入其中?

感谢任何帮助/建议。

【问题讨论】:

  • 你做得对。
  • 我真的看不出有什么问题。代码很容易阅读。我可以告诉您,您只想在用户加载后渲染用户,并且从代码中我可以看出用户也不一定会出现在第一次渲染中。这是在反应代码库中很常见的事情
  • 好的。嗯,很高兴知道 :) 我想事先定义列表,然后渲染它可能会更好。但我试过了,它显然会在渲染之前尝试将users 值分配给变量,此时为null。只是想确定这不是糟糕的做法。谢谢。

标签: javascript object reactjs response render


【解决方案1】:

给它一个默认值?

const users = this.props.users || {};

使用 ES6 和解构:

const { users = {} } = this.props;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2012-12-24
    相关资源
    最近更新 更多