开发者问题收集

如何在 React 中访问数组值?

2021-03-13
1859

我有一个数组 categoryDataString

[{"ID":"1","Category":"first"},
{"ID":"2","Category":"second"},
{"ID":"3","Category":"third"}]

我想从数组中访问特定值。比如第二个类别的名称。

我试过 第一个

 console.log(categoryDataString[0].ID)

结果

undefined

第二个

console.log(categoryDataString)

结果

[{"ID":"1","Category":"first"},{"ID":"2","Category":"second"},{"ID":"3","Category":"third"}]

这是我的代码

 const categoryDataString = JSON.stringify(categoryData)
    const categoryData = useCategoryData()
    useEffect(() => {
            setDataLoad(DataLoaded + 1)
            setSelected(categoryDataString.Category)
            console.log(categoryDataString[0].ID)
            console.log(categoryDataString)
        }, [categoryData])

这是我的 Itemdata.js

import React, { useState, useEffect } from 'react'
import { View, Text, StyleSheet } from 'react-native'

export const useCategoryData = (props) => {
    const [Category, setCategory] = useState('')
    useEffect(() => {
        fetch('https://www.amrutras.com/Category.php')
            .then((response) => response.json())
            .then((responseJson) => {
                {
                    setCategory(responseJson)

                    // responseJson.map((item) => Alert.alert(item.Name))
                }

                // Showing response message coming from server after inserting records.
            })
            .catch((error) => {
                console.error(error)
            })
    }, [])

    return Category
}

export default useCategoryData
1个回答

我认为您得到未定义的值是因为 categoryDataString 是一个字符串。因此您需要将其转换为对象,然后按如下方式访问属性:

const categoryDataObject = JSON.parse(categoryDataString);
console.log(categoryDataObject[0].ID)

您也可以尝试访问 categoryData,而不需要首先将其转换为 json 字符串,因此:

console.log(categoryData[0].ID)
jeremy302
2021-03-13