React-Native | setState的问题无法读取

时间:2019-02-25 18:43:17

标签: javascript android api react-native

无法读取setStateprint1的值保持0000,必须将其更改为array[0].date,并且警报显示{{1}的值} 问题是它以前可以工作。

PS:没有显示错误

array[0].date

2 个答案:

答案 0 :(得分:1)

在构造函数中设置状态时,this.state =会分配状态对象的初始值,因此它实际上不是一个函数。在生命周期的更深处,调用this.setState是一个将现有状态与您的更改合并的函数。所以改变

        this.state = ({
        print1: '0000',
    })

        this.state = {
        print1: '0000'
    }

此外,您没有分配状态,而是在调用函数,因此不要使用=

         this.setState = ({
         print1: array[0].date,
        })

应该是

         this.setState({
         print1: array[0].date
        })

答案 1 :(得分:0)

尝试这样做

export default class WebServiceUse extends Component {
    constructor(props) {
        super(props);
        this.state = ({
            print1: '0000',
        })
    }
    componentDidMount() {
        var that = this;
        fetch('https://**********', {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({ id: '1' })
        }).then((response) => response.json()).then((responseJson) => {
            let array = responseJson.ed5aaf3d933385698d872d0a0d5d4f36
            alert(array[0].date)
            that.setState({
                print1: array[0].date,
            })
        })
            .catch((error) => {
                console.error(error)
            });
    }
    render() {
        return (
            <View style={styles.container}>
                <Text>Test:</Text>
                <Text>{this.state.print1}</Text>
            </View>
        );
    }
}