首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >道具在‘`render`’函数上显示空值,而在‘`render`’函数中工作?

道具在‘`render`’函数上显示空值,而在‘`render`’函数中工作?
EN

Stack Overflow用户
提问于 2020-06-28 07:33:18
回答 1查看 53关注 0票数 0

因此,我将道具从app.js传递到state.jsx,但是当控制台记录道具时,它给了我一个undefined,但它在render函数中完美地工作。为什么会这样?

App.js

代码语言:javascript
复制
class App extends React.Component{

  state = {
    data : {},
    states: '',
}

async componentDidMount () {
    const  dataFromApi = await StateData();
    this.setState({ data: dataFromApi})
}

handleStateChange = async(states) => {
    const  fetchedData = await StateData(states);
    
    this.setState({data: fetchedData, states: states})
    
}
  render(){
    const {data, states} = this.state;
    console.log(data);
    return (
      <div className="App">
        <StateCard data={data} states={states}/>
      </div>
    );
  }
}

State.jsx

代码语言:javascript
复制
export default class StateCard extends React.Component{

        constructor(props) {
//this doesn't work
          super(props)
          const dta = this.props.data.confirmed
          console.log(dta)
         
        }

        // spacing deafult value is 8px , so the 3*8=24px width column

        render(){

//This works
          console.log(this.props.data.confirmed)
          console.log(this.props.states)
          const {confirmed,active, deaths, recovered} = this.props.data
           return (
            <div>
             <span>Confirmed : {confirmed}</span>
            </div>);}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-28 07:42:06

您可以使用useEffect和Function代替React.Component。它比使用componentdidMount和其他生命周期方法更容易。

代码语言:javascript
复制
import React, { useEffect } from "react";

const StateCard = props => {
  const { data, states } = props;
  const { confirmed, active, deaths, recovered } = data;

  useEffect(() => {
    console.log(confirmed);
    console.log(states);
  }, [props]);

  return (
    <div>
      <span>Confirmed : {confirmed}</span>
    </div>
  );
};

export default StateCard;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62619568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档