【问题标题】:React state data null for the first time第一次反应状态数据为空
【发布时间】:2017-05-01 07:14:37
【问题描述】:

我从 api 获取“数据”。第一次渲染组件时,它获取的数据为 null,但一段时间后它具有 api 数据。我从 api 获取数据但由于以下原因无法渲染它初始空值。

class CallData extends Component {
      componentWillMount() {
        if (this.props.onPageLoad) {
          this.props.onPageLoad();
        }
      }


      render() {
        const {data} = this.props;
        console.log("data of table...");
        console.log({data});
        if (!data.length) {
          return null;
        }

        return(
          <div>
            {console.log(data)};

          </div>
        );

      }
    }


    export default CallData;

【问题讨论】:

  • 到底是什么问题?您已经在处理上面可能是null 的事实,所以...?
  • 我想在渲染组件时显示 api 数据
  • 所以...这样做。当数据不是null 时,上述内容可能会在render 而不是console.log 中有用。
  • 你能展示一下,你是如何为这个组件提供道具的,你的数据对象是什么样子的
  • @oxy_js,你能提供你在基于类的组件中初始化状态的代码吗,因为你不是用你提供的这个来做的。

标签: javascript html reactjs


【解决方案1】:

我认为你有两个不错的选择:

  1. 为组件指定默认道具 https://facebook.github.io/react/docs/typechecking-with-proptypes.html#default-prop-values

  2. 在渲染方法中声明数据的默认值:const {data = {}} = this.props;

3.

return(
      {this.props.data && <div>
        {console.log(data)};
      </div>}
    )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多