Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ReactJS无法映射数组_Javascript_Reactjs - Fatal编程技术网

Javascript ReactJS无法映射数组

Javascript ReactJS无法映射数组,javascript,reactjs,Javascript,Reactjs,我是错误的咆哮 未捕获(承诺中)TypeError:无法读取的属性“映射” 未定义 尝试执行下面的map函数时,其中模拟API的链接为: 状态={ 名称:'Teste II', produto:null, alternativas:null, 心房肌:空, 正在加载_produto:true, 加载_alternativas:true, 正在加载心房肌:正确, showPopup:false, }; 建造师(道具){ 超级(道具); } 异步组件didmount(){ 常量url=”http:/

我是错误的咆哮

未捕获(承诺中)TypeError:无法读取的属性“映射” 未定义

尝试执行下面的map函数时,其中模拟API的链接为:

状态={
名称:'Teste II',
produto:null,
alternativas:null,
心房肌:空,
正在加载_produto:true,
加载_alternativas:true,
正在加载心房肌:正确,
showPopup:false,
};
建造师(道具){
超级(道具);
}
异步组件didmount(){
常量url=”http://www.mocky.io/v2/5db88c413b00004f0b35f1f1";
const response=等待获取(url);
const data=wait response.json();
this.setState({produto:data.suggestions[0],正在加载_produto:false})
this.setState({alternativas:data.choices,loading_alternativas:false})
this.setState({atributos:data.suggestions[0]。属性,正在加载_atributos:false})
log(this.state.produto.product\u data.title);
}
render(){
const lista_alternativas=this.state.alternativas;
const lista_atributos=this.state.atributos;
如果(!this.state.loading_atributos){
this.atributos=lista_atributos.map((描述,键)=>{
console.log('chegou-aqui');
return
  • {description.description}
  • }); } 返回(

    怎么了?

    尝试将atributos的初始状态设置为空数组,而不是空数组:

    state = {
            name: 'Teste II', 
            produto: null,
            alternativas: null,
            atributos: [],
            loading_produto: true,
            loading_alternativas: true,
            loading_atributos: true,
            showPopup: false,
        };
    

    尝试将atributos的初始状态设置为空数组而不是空数组:

    state = {
            name: 'Teste II', 
            produto: null,
            alternativas: null,
            atributos: [],
            loading_produto: true,
            loading_alternativas: true,
            loading_atributos: true,
            showPopup: false,
        };
    

    检查该URL的响应,您正在将状态值“atributos”设置为data.suggestions[0]。attributes(不存在)

    您可能希望将其更改为data.suggestions[0]。product_data.attributes

    更具体地说,将componentDidMount函数更改为:

    async componentDidMount(){
        const url = "http://www.mocky.io/v2/5db88c413b00004f0b35f1f1";
        const response = await fetch(url);
        const data = await response.json();
        this.setState({produto: data.suggestions[0], loading_produto: false})
        this.setState({alternativas: data.choices, loading_alternativas: false})
        this.setState({atributos: data.suggestions[0].product_data.attributes, loading_atributos: false})
        console.log(this.state.produto.product_data.title);
    }
    

    检查该URL的响应,您正在将状态值“atributos”设置为data.suggestions[0]。attributes(不存在)

    您可能希望将其更改为data.suggestions[0]。product_data.attributes

    更具体地说,将componentDidMount函数更改为:

    async componentDidMount(){
        const url = "http://www.mocky.io/v2/5db88c413b00004f0b35f1f1";
        const response = await fetch(url);
        const data = await response.json();
        this.setState({produto: data.suggestions[0], loading_produto: false})
        this.setState({alternativas: data.choices, loading_alternativas: false})
        this.setState({atributos: data.suggestions[0].product_data.attributes, loading_atributos: false})
        console.log(this.state.produto.product_data.title);
    }