You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native API调用返回JSON可打印但界面无法渲染问题求助

React Native FlatList 不显示API数据问题修复

问题根源

你的代码存在三个关键问题导致界面无内容:

  1. JSON解析错误:使用response.text()获取的是字符串格式响应,而非可直接操作的JSON对象,此时this.state.clubs是字符串,无法读取standings属性。
  2. 数据路径错误:API返回的standings嵌套在season.groups[0]下,而非直接在根对象中。
  3. FlatList渲染参数错误:renderItem的回调参数是包含item字段的对象,直接传入item会导致无法正确读取teamName。

修正后的代码

state = {
  clubs: []
}

componentDidMount() {
  let url = 'https://api.statorium.com/api/v1/standings/143?apikey=***************'
  fetch(url)
    .then((response) => response.json()) // 改用json()解析响应
    .then((data) => {
      console.log('API数据', data)
      // 取正确路径下的standings数据
      const standings = data.season.groups[0].standings
      this.setState({ clubs: standings })
    })
    .catch((error) => {
      console.error(error)
      this.setState({ clubs: [] })
    })
}

onChangeText(text) {
  console.log('输入内容', text)
}

ItemView({ item }) { // 解构获取item对象
  return (
    <View>
      <Text>{item.teamName}</Text>
    </View>
  );
};

render() {
  return (
    <View style={styles.container1}>
      <SafeAreaView >
        <View style={{ flexDirection: 'row', justifyContent: 'center', alignItems: 'center', backgroundColor: 'white', borderRadius: 10, }}>
          <View>
            <Ionicons name='md-search' size={25} color='black' style={{ marginLeft: 10 }} />
          </View>
          <TextInput
            style={styles.input}
            placeholder="搜索球员"
            onChangeText={text => this.onChangeText(text)}
          />
        </View>
      </SafeAreaView>
      <FlatList
        data={this.state.clubs} // 直接使用state中的clubs数组
        renderItem={this.ItemView}
        keyExtractor={(item) => item.teamID} // 添加唯一key,避免警告
        ListEmptyComponent={() => (
          <Text style={{ color: 'white' }}>
            暂无数据
          </Text>
        )}
      />
    </View>
  )
}

补充说明

  • 新增keyExtractor:FlatList要求每个列表项有唯一标识,用teamID可满足需求,同时避免控制台警告。
  • 简化数据传递:将standings数组直接存入state,减少渲染时的路径层级,降低出错概率。

内容的提问来源于stack exchange,提问作者Noble Amanfo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:27:30