javascript – 如何在使用axios和ReactJS进行反应选择后获取数据?

我是ReactJS的新手,我想在选择产品名称之后获得一个Price值,然后选择并显示它.

我的方法:

    constructor(props) {
        super(props);
        this.state = {
     PrixV: ""

     }
        PrixDisplay(selectprdt) {
            return axios.get("/app/getPrixprod/" + selectprdt).then(response => {
             if (response && response.data) {
                this.setState({
                  PrixV: response.data
                });
              }
console.log(response.data)
            }).catch(error => {
              console.error(error);
            });
          }

我尝试通过以下方式读取此值:

<p>{this.state.PrixV} </p>

当我运行它时,价格列上没有显示任何内容,在我选择产品名称后,我得到:

Objects are not valid as a React child (found: object with keys {PrixV}). If you meant to render a collection of children, use an array instead.
    in p (at AjouterFacture.js:383)

然后控制台返回:

[{…}]0: {PrixV: "250.000"}length: 1__proto__: Array(0)

我该如何阅读和显示它?

最佳答案
您必须使用地图,尝试更改代码,如下所示:

    constructor(props) {
        super(props);
        this.state = {
     Prix: []};
    render() {
    let {
          Prix
        } = this.state.Prix;
    return (
     <td>
 {  this.state.Prix.map((pr, k) => 
      <p key={k} >{pr.PrixV} </p>
                       )} 
                         </td>
    );}
    PrixDisplay(selectprdt) {
        return axios.get("/app/getPrixprod/" + selectprdt).then(response => {
         if (response && response.data) {
            this.setState({
              Prix: response.data
            });
          }

        }).catch(error => {
          console.error(error);

        });
      }

我希望这会有所帮助.

转载注明原文:javascript – 如何在使用axios和ReactJS进行反应选择后获取数据? - 代码日志