Javascript 获取TypeError:在react中对非对象调用CreateListFromArrayLike
我正在尝试在我的node/react js应用程序中获取7天的google analytics数据。目前,我正在尝试在react js中以图表格式显示数据。但每当我试图在图表中的DATAPOINTSJavascript 获取TypeError:在react中对非对象调用CreateListFromArrayLike,javascript,node.js,reactjs,google-analytics,Javascript,Node.js,Reactjs,Google Analytics,我正在尝试在我的node/react js应用程序中获取7天的google analytics数据。目前,我正在尝试在react js中以图表格式显示数据。但每当我试图在图表中的DATAPOINTS{DATAPOINTS={[“2”、“3”、“4”、“6”]}参数中传递数据时。这给了我一个错误 注意---如果我传递的是静态数据点,它的工作方式就像这样--dataPoints={[“2”、“3”、“4”、“6”]} 如果我使用state传递值,它将在react error中为我提供对非对象调用的C
{DATAPOINTS={[“2”、“3”、“4”、“6”]}
参数中传递数据时。这给了我一个错误
注意---如果我传递的是静态数据点,它的工作方式就像这样--dataPoints={[“2”、“3”、“4”、“6”]}
如果我使用state传递值,它将在react error中为我提供对非对象调用的CreateListFromArrayLike
我是react和node js的新手,花了6.3个小时试图解决这个问题,但仍然没有运气
这是我的API路线
app.get("/api/ga/sevendata",
authJwt.check_token_auth,
controller.sevendata
);
<ChartLineSimple
pointed
className="c-chart-wrapper mt-3 mx-3"
style={{height: '70px'}}
dataPoints={["2","3","4","6"]} //Working fine here incase of static
pointHoverBackgroundColor="primary"
label="Members"
labels="months"
/>
<ChartLineSimple
pointed
className="c-chart-wrapper mt-3 mx-3"
style={{height: '70px'}}
dataPoints={usersevenDayTime} //It's NOT Working
pointHoverBackgroundColor="primary"
label="Members"
labels="months"
/>
控制器
async function getSevenDayData() {
const response = await jwt.authorize()
const result = await google.analytics('v3').data.ga.get({
'auth': jwt,
'ids': 'ga:' + view_id,
'start-date': '7daysAgo',
'end-date': 'yesterday',
'dimensions': 'ga:date',
'metrics': 'ga:users, ga:bounceRate, ga:avgSessionDuration, ga:sessions'
})
const lastSevenDayUser = [];
result.data.rows.map(item => {
var user = item[1];
lastSevenDayUser.push({user : user });
})
return lastSevenDayUser;
}
//Exporting the result to the react app / frontend
exports.sevendata = (req, res) => {
const getpastsevendata = getSevenDayData();
getpastsevendata.then(function(result){
res.send(result);
});
}
反应前端区域/小部件区域
const [usersevenDayTime, setPastSevenTimeUser] = useState(''); //using use state
const SevenDayData= ()=> {
const config = {
headers: { Authorization: `Bearer ${token}` }
};
const bodyParameters = {
key: "value"
};
const changeableUrl = "http://167.172.209.57:8080/api/ga/sevendata";
axios.get(changeableUrl,config)
.then((response) => {
// Empty Variables here
const user = [];
response.data.map(item => {
// Pusing data in array type variable
user.push(item.user);
})
//Setting element in use state hook
setPastSevenTimeUser(user);
}, (error) => {
console.log(error);
});
}
以下是反应图小部件代码
app.get("/api/ga/sevendata",
authJwt.check_token_auth,
controller.sevendata
);
<ChartLineSimple
pointed
className="c-chart-wrapper mt-3 mx-3"
style={{height: '70px'}}
dataPoints={["2","3","4","6"]} //Working fine here incase of static
pointHoverBackgroundColor="primary"
label="Members"
labels="months"
/>
<ChartLineSimple
pointed
className="c-chart-wrapper mt-3 mx-3"
style={{height: '70px'}}
dataPoints={usersevenDayTime} //It's NOT Working
pointHoverBackgroundColor="primary"
label="Members"
labels="months"
/>
这是一个图像,其中点是可见的。我必须在其中设置usestate变量——如果您希望state对象保存一个数组,那么应该使用空数组const[usersevenDayTime,setPastSevenTimeUser]=usestate([])初始化它
这并不能解决您的问题,但这是一种很好的做法。在响应.data.map()
循环中,如果您使用console.log(user),您是否获得与硬编码数据点相同类型的数据?@RicardoSanchez,是的,我获得的数据类型与dataPointMind共享日志中提到的数据类型相同?这是一幅图像,其中可以看到点。我必须在其中设置usestate变量——如果您希望state对象保存一个数组,那么应该使用空数组const[usersevenDayTime,setPastSevenTimeUser]=usestate([])初始化它
这并不能解决您的问题,但这是一种很好的做法。在response.data.map()
循环中,如果您使用console.log(user),您是否获得与硬编码数据点相同类型的数据?@RicardoSanchez,是的,我获得的数据类型与dataPointMind共享日志中提到的数据类型相同?