我遇到了从服务器端(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>
);
}
答案 0 :(得分:4)
不应该是 <?php
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$img = $id;
foreach(glob("gallery3/var/albums/" . $img) as $filename)
?>
<img src = " <?php echo $filename; ?> " />
而不是newState.push(response.data.errors)
吗?
此外,在打印newState.push(response.data)
个对象时,您需要使用JSON
。因此JSON.stringify
会以可读的console.log(JSON.stringify(this.state.errors))
格式显示JSON
答案 1 :(得分:0)
与您的问题无关,但对我来说,这是一个可悲的原因 为什么显示为[Object Object]。请参见以下区别。
componentWillReceiveProps(nextProps) {
console.log("Data"+nextProps.payload.payloadData); // Display [Object Object]
console.log(nextProps.payload.payloadData); // Display proper list
}