Javascript 获取TypeError:在react中对非对象调用CreateListFromArrayLike

Javascript 获取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

我正在尝试在我的node/react js应用程序中获取7天的google analytics数据。目前,我正在尝试在react js中以图表格式显示数据。但每当我试图在图表中的DATAPOINTS
{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共享日志中提到的数据类型相同?