Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从React组件中的fetch函数设置状态_Javascript_Reactjs - Fatal编程技术网

Javascript 无法从React组件中的fetch函数设置状态

Javascript 无法从React组件中的fetch函数设置状态,javascript,reactjs,Javascript,Reactjs,我试图从一个fetch函数设置一个状态,api似乎正确地返回了json。但该州似乎从未使用api中的数据填充。有人看到问题了吗?代码似乎运行良好,没有显示任何错误,因此我不确定问题出在哪里。以下是代码: var计数=0; const ActivityRow=props=>( {props.activity.Date.toString()} {props.activity.ActivityType} {props.activity.Value} ); 功能活动表(道具){ const Activ

我试图从一个fetch函数设置一个状态,api似乎正确地返回了json。但该州似乎从未使用api中的数据填充。有人看到问题了吗?代码似乎运行良好,没有显示任何错误,因此我不确定问题出在哪里。以下是代码:

var计数=0;
const ActivityRow=props=>(
{props.activity.Date.toString()}
{props.activity.ActivityType}
{props.activity.Value}
);
功能活动表(道具){
const ActivityRows=props.activities.map(activity=>(
));
返回(
日期
活动类型
价值
{ActivityRows}
);
}
函数格式日期(日期){
var hours=date.getHours();
var minutes=date.getMinutes();
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12;
小时数=小时数?小时数:12;
分钟=分钟<10?“0”+分钟:分钟;
var strTime=hours+“:“+minutes+”+ampm;
返回(
date.getMonth()+
1 +
"/" +
date.getDate()+
"/" +
date.getFullYear()+
"  " +
时间
);
}
类ActivityAdd扩展了React.Component{
构造函数(){
超级();
this.handleSubmit=this.handleSubmit.bind(this);
}
handleSubmit(e){
e、 预防默认值();
var form=document.forms.ActivityAdd;
this.props.createActivity({
id:count++,
日期:formatDate(新日期()),
ActivityType:form.Activity.value,
值:form.Value.Value
});
//清除下一个输入的表单
form.Activity.value=“”;
form.Value.Value=“”;
}
render(){
返回(
添加
);
}
}
类应用程序扩展了React.Component{
构造函数(){
超级();
this.state={activities:[]};
this.createActivity=this.createActivity.bind(this);
}
loadData(){
获取(“/api/activities”)
.then(response=>response.json())
。然后(数据=>{
log(“记录总数:”,数据._元数据.总计数”);
});
this.setState({activities:data.records});
}
createActivity(newActivity){
获取(“/api/activities”{
方法:“张贴”,
标题:{“内容类型”:“应用程序/json”},
正文:JSON.stringify(newActivity)
})
.then(response=>response.json())
。然后(更新的活动=>{
const newActivities=this.state.activities.concat(newActivity);
this.setState({activities:newActivities});
});
}
render(){
返回(
糖尿病自我管理应用程序


); } }
render(,document.getElementById(“contents”)
由于
设置状态
超出了
数据
的范围,因此
数据
未定义,导致设置状态失败

loadData(){
获取('/api/activities')。然后(响应=>
response.json()
)。然后(数据=>{
log(“记录总数:”,数据._元数据.总计数”);
});
//此处未定义,因为数据不存在
this.setState({activities:data.records});

}
由于
设置状态
超出了
数据
的范围,因此
数据
未定义,导致设置状态失败

loadData(){
获取('/api/activities')。然后(响应=>
response.json()
)。然后(数据=>{
log(“记录总数:”,数据._元数据.总计数”);
});
//此处未定义,因为数据不存在
this.setState({activities:data.records});

}
在哪里调用
loadData
方法?this.setState({activities:data.records});将此行移动到then,尽管如果将其移动到then,则应在进入then函数之前将其放入另一个对象中。您在哪里调用
loadData
方法?this.setState({activities:data.records});将这一行移动到then,虽然如果你将它移动到then,你应该在进入then函数之前将其放入另一个对象中。我尝试了这一点,但仍然不起作用。您还有其他建议吗?您是否尝试过
console.log(data.records)
范围内,然后
查看打印出的内容?我尝试过,但仍然不起作用。您还有其他建议吗?您是否尝试过
console.log(data.records)
内的
,然后查看打印出的内容?