分配的响应数据显示[对象对象] React Native

问题描述 投票:1回答:2

我有一个问题是迭代我从服务器端(Laravel)获得的验证错误。我可以得到错误响应并分配状态错误数组。但是当我在console.log状态时它会显示我[obeject object]。所以我无法迭代数组。你们可以帮忙吗?

constructor(props){
        super(props);
        this.state={
            userName:'',
            userEmail:'', 
            userPassword:'',
            errors:[]               
        }
    }

axios({
            method: 'post',
            url: API_URL+'signup',
            data: {
                username: userName,
                email: userEmail,
                password: userPassword
            }
        })
        .then((response) => {
            var count = Object.keys(response.data.errors).length;
            if (count > 0) {
                console.log(response.data);
                var newState = []; 
                newState.push(response.data);
                this.setState({
                    errors: newState
                })
            }

            console.log("error = " + this.state.errors); // console output: error = [object Object]
        })
        .catch((error) => {
            console.log(error);
        });

//在render函数中我已经完成了以下代码来显示验证错误

render() {
    <Errors errors={this.state.errors} />
}

const Errors = (props) => {
    return (
        <View>{props.errors.map((error, i) => <Text key={i}>{error}</Text>)}</View>
    );
}
javascript json reactjs laravel-5 react-native
2个回答
4
投票

不应该是newState.push(response.data.errors)而不是newState.push(response.data)

此外,当打印JSON对象时,您需要使用JSON.stringify。因此,console.log(JSON.stringify(this.state.errors))将以可读的JSON格式显示string


0
投票

与你的问题无关,但对我而言,它显示为[Object Object]是一个非常可悲的原因。见下面的区别。

componentWillReceiveProps(nextProps) {       
   console.log("Data"+nextProps.payload.payloadData); // Display [Object Object]
   console.log(nextProps.payload.payloadData);  //  Display proper list
}
© www.soinside.com 2019 - 2024. All rights reserved.