无法在本机反应中访问 json 值

Posted

技术标签:

【中文标题】无法在本机反应中访问 json 值【英文标题】:Can't access json values in react native 【发布时间】:2022-01-21 05:58:33 【问题描述】:

我最近一直在使用 React-native(老实说,这是我第一次)。

我正在从 api 中检索值,并尝试在 Text 标记中显示它们。但我不知道如何访问这些值。

所以,这是我的代码:

export const Home = () => 
  
  const [data, setData] = useState([]);

  const getApiInformations = async () => 

    const response = await fetch('https://www.thecocktaildb.com/api/json/v1/1/search.php?s=margarita');
    const responseJson = await response.json();
    setData(responseJson);
  
  
  useEffect(() => 
    getApiInformations();
  , []);
  
  return (
    <View>
        <Text>
            
              I want to put the values here like : data.idDrink, data.OtherValue,...
            
        </Text>
    </View>
  );


在 data.drinks 我有:

0: idDrink: '11007', strDrink: 'Margarita', strDrinkAlternate: null, strTags: 'IBA,ContemporaryClassic', strVideo: null, …
1: idDrink: '11118', strDrink: 'Blue Margarita', strDrinkAlternate: null, strTags: null, strVideo: null, …
2: idDrink: '17216', strDrink: "Tommy's Margarita", strDrinkAlternate: null, strTags: 'IBA,NewEra', strVideo: null, …
3: idDrink: '16158', strDrink: 'Whitecap Margarita', strDrinkAlternate: null, strTags: null, strVideo: null, …
4: idDrink: '12322', strDrink: 'Strawberry Margarita', strDrinkAlternate: null, strTags: null, strVideo: null, …
5: idDrink: '178332', strDrink: 'Smashed Watermelon Margarita'

感谢您的帮助:)。

【问题讨论】:

【参考方案1】:

您可以在 javascript 中使用.map() 功能。例如:

data && data.map((element) => 
    return <Text key=element.idDrink>ID: element.idDrink Name: element.strDrink</Text>
)

【讨论】:

几点建议:1. 状态是data,而不是responseJson,2. 不要忘记每个&lt;Text&gt; 上的key 属性。 谢谢。进行了这些更改。 我按照你说的做了,但是我得到了那个错误:typeerror: cannot read properties of undefined (reading 'map') because before doing data.map我必须做data.drinks.map。但是如果 data.map 完全像你我有这个错误: typeerror : data.map is not a function. 你能console.log(responseJson) 显示吗? 当我执行 console.log(responseJson) 时,首先我有一个像这样的空数组:[],然后我自动有一个像这样的第二行:drinks: Array(6)(它是由于 useEffect() 我想)

以上是关于无法在本机反应中访问 json 值的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中从平面列表中设置 Json 数组

使用 RNFS 在本机反应上读取 Json 文件

我如何在本机反应中从 json 中选择特定值?

如何传递多个值以响应本机上下文 API

如何在本机反应中禁用文本输入的字体缩放(可访问性的动态类型)?

无法在本机反应中使用 fetch 执行 POST 请求