繁体   English   中英

无法通过React JS中的道具发送状态的更新值

[英]Unable to send the updated value of state through props in react js

我试图将状态值从父级发送到子级组件。状态值最初是空的。API调用后,状态值得到了更新,但是我的道具正在使用初始的空值。

class Metrics extends React.Component {
constructor(props) {
    super(props);
this.state.result:[];
}

  submit = e => {
     e.preventDefault();
    var URL =
     "http://localhost:8080/fetchAnalysisData;
    this.setState({ formsubmit: true });

    fetch(URL, {
      method: "GET"
    })
      .then(res => res.json())
      .then(data => {
        console.log("Response Success!!");
        this.setState({ result: data });
      });
  };

render(){
return(

<Button onClick={this.submit}
                   fontSize: "small",
                    marginLeft: "30%"
                  }}
                >
                  VIEW RESULT
                </Button>
<div className={this.state.formsubmit ? "showDisplay" : "hide"}>
 <DipslayBarChart result={this.state.result}></DipslayBarChart>
</div>
)
}

子组件:

class DipslayBarChart extends React.Component {
    constructor(props){
        super(props);
    }
    render(){
        return(
            <div>
              <BarChart width={500} height={300} data={this.props.result}>
                      <XAxis dataKey="Date" />
                      <YAxis />
                      <Tooltip cursor={false} />
                      <Legend />
                      <Bar dataKey="Success" stackId="a" fill="#068f12" label />
                      <Bar
                        dataKey="Failure"
                        stackId="a"
                        fill="#ec0b0b"
                      />
                    </BarChart>
            </div>
        )
    }

}

状态更新后如何更新prop值?

这样写你的构造函数,

constructor(props) {
    super(props);
    this.state={
      result:[]
    }
}

此外,如果您不在构造函数中使用道具,则无需声明构造函数。 你可以这样声明状态

state={
  result:[]
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM