首页 > 解决方案 > React Native:json.data 不是一个函数。(在 'json.data()' 中,'json.data' 是 Array 的一个实例)]

问题描述

我正在尝试使用 API 显示来自我的网络的数据。我的 API 工作正常。但有些我如何面对这个问题json.data is not a function. (In 'json.data()', 'json.data' is an instance of Array)]。我可以帮助我吗?

 _loadInitialState = async () => {

        const token = await AsyncStorage.getItem('token');
        const myArray = await AsyncStorage.getItem('language_type');
        _onSetLanguage(myArray)

        var loadAll = this.props.navigation.getParam('loadAll');
        if (loadAll == true) { this.setState({ isLoading: true }) }

        var have_access = this.props.navigation.getParam('have_access');
        if (have_access != undefined) { this.setState({ have_access: have_access }) }
        if (staticData.get_centre_settings() != null) { this.setState({ have_access: true }) }

        let today = Moment();
        this.setState({
            today: Moment(today).format('YYYY-MM-DD'),
        })

        // alert(FetchURL.get_baseURL() +  "leave?centre_id=" + staticData.get_centre_settings().centre.centre_id)
        // alert(token)
        // return
        fetch(FetchURL.get_baseURL() +  "leave?centre_id=" + staticData.get_centre_settings().centre.centre_id, {
            method: 'GET',
            headers: {
                'Authorization': 'Bearer '+ token,

            }
        })
        .then(response => response.json())
        .then((json) => {
            // alert(json)
            if (json.error) {
                alert(json.error);
            } else {
                this.setState({
                    staffLeave: json.data(),
                    isLoading: false
                });


            }

        })
        .catch((err) => {
            console.log(err)
            alert(err)
            // alert(strings.data_fail);
        })
    this.setState({ view_access: true })


    }

我一直在寻找这个,但找不到一个可以说明这一点的答案。

谢谢!

标签: javascriptarraysjsonreact-native

解决方案


你有 as 之后的response.json()响应json。如果您想将其存储为 state,usejson.data而不是json.data(),就像您检查json.error.


推荐阅读