如何解决'TypeError:undefined不是对象(评估'subitem.media_details.sizes.medium.source_url')'

乌玛745

我收到TypeError:当我尝试从wordpress API中提取Image source_URL时,未定义不是对象(评估“ subitem.media_details.sizes.medium.source_url”)

https://imgur.com/a/1KZdNVc

https://imgur.com/a/WJoKKwh

上面附件中的图像中的错误消息指向以下代码行

{this.state.data && this.state.data.length > 0 && ( this.state.data.map(post => (

{post.featured_media > 0 && post._embedded['wp:featuredmedia'].filter(element => element.id == post.featured_media).map((subitem, index) => (

source={{ uri: subitem.media_details.sizes.medium.source_url }}

我已经通过wordpress API浏览了JSON数据,并且肯定有一个URL。

 class HomeScreen extends React.Component {

 constructor(){
 super();
  this.state = {
      data: null,
      loaded: true,
      error: null
   }
}
baseURL = 'https://wordpress-URL';

getData = (ev)=>{
this.setState({loaded:false, error: null});
let url = this.baseURL + '/posts?_embed';

let req = new Request(url, {

    method: 'GET'
});

fetch(req)
.then(response=>response.json())
.then(this.showData)
.catch(this.badStuff)
}
showData = (data)=>{
    this.setState({loaded:true, data});
    console.log(data);
}
badStuff = (err) => {
    this.setState({loaded: true, error: err.message});
}
componentDidMount(){
    this.getData();

}

  render() {

return (
  <ScrollView>
    { this.state.error && ( <Text style={styles.err}>{this.state.error}</Text> )}
    {this.state.data && this.state.data.length > 0 && (
      this.state.data.map(post => (
        <View key={post.id} >
          <TouchableOpacity onPress={() => this.props.navigation.navigate('Details', { article: post.content.rendered, title: post.title.rendered} )} >
            <View style={{ flex: 1, flexDirection: 'row', justifyContent: 'space-evenly', paddingTop: 25 }}
              borderBottomWidth={0.8}
              borderBottomColor={'gold'}  >
              <View>
                {post.featured_media > 0 && post._embedded['wp:featuredmedia'].filter(element => element.id == post.featured_media).map((subitem, index) => (
                  <Image
                    source={{ uri: subitem.media_details.sizes.medium.source_url }}
                    style={{ width: width / 3, height: height / 5, borderRadius: 10 }}
                    key={index} />

                ))
                }
                {/* <Image source={require('../assets/Hotelcalifornia.jpg')}
                  style={{ width: 150, height: 150, borderRadius: 10 }} /> */}
              </View>
              <View style={{ height: 170 }} >
                <Text style={{ width: width / 2, height: height / 5 }}
                  fontSize={30} >
                  {post.title.rendered}
                </Text>
              </View>
            </View>
          </TouchableOpacity>
        </View>
      )))}

  </ScrollView>
);
}
}

我希望来自URL的图像显示在视图内的标签中,但是相反,我收到TypeError:undefined不是对象

埃里克·斯维托克

调试并检查要映射的已过滤数组中的每个元素,以查看每个元素是否存在所有嵌套对象。subitem.media_details.sizes.medium.source_url下方可能存在一个嵌套对象,该对象至少对于其中一个元素不存在。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决TypeError:undefined不是React-Native中的对象(评估'_core.pathUtils.urlToPathAndParams')

如何从厨师食谱访问元数据“ source_url”?

我该如何解决这个问题 - undefined 不是一个对象(评估“label.toUpperCase”)

我该如何解决:'TypeError:未定义不是对象(正在评估'_this.props.navigationProps.toggleDrawer')'

如何解决“ TypeError:$(...)。length不是函数”?

TypeError: ABC 不是函数,如何解决?

如何解决 Uncaught TypeError: clojure is undefined

在React中测试mapbox-gl时如何解决“ window.URL.createObjectURL不是函数”?

如何解决“未定义不是对象(评估'form.submit.addEventListener')”

如何解决。评估舍入结果

如何解决Excel的URL限制?

如何解决“警告:不是分离的签名”?

如何解决AutoComplete不是Materializecss的功能?

如何解决javascript“不是函数”错误

如何解决此(不是功能)错误?

如何解决错误:“MyInheritedWidget”不是类型

如何解决错误“不是符号Imageview”?

我该如何解决TypeError

如何解决代码中的“ this”对象混乱

如何解决“对象未定义”

如何解决/访问动态创建的对象?

如何解决空对象引用?

如何解决对象被覆盖的问题?

如何解决“环境对象”这个问题?

如何解决对象中的嵌套承诺

如何解决“ TypeError:process.getuid不是函数”

ReactJS:如何解决 TypeError:variable.map 不是函数

如何解决TypeError:environment.teardown不是函数

如何解决此TypeError:props.onSubmit不是函数?