【问题标题】:Fetch data to React Native Victory charts获取数据到 React Native Victory 图表
【发布时间】:2020-10-13 16:39:42
【问题描述】:

我设法创建了一个同时包含键(服务名称)和值(每个服务的计数器)的对象 我不明白的是我如何正确地将数据提取到图表中,这意味着 X 轴将保存键(服务名称),Y 轴将保存值(计数器)

创建对象的代码:

const servicesCounter = services.reduce((counterObj, service) => { //Reduce => reduce the array to a single value, then count it.
    if (counterObj.hasOwnProperty(service)) {
      counterObj[service] += 1;
      return counterObj;
    }
  
    return {
      ...counterObj,
      [service]: 1
    };
  }, {});

控制台日志:

Service Counter =>  Object {
  "clean": 4,
  "haircut": 3,
  "wash": 1,
}

胜利派:

  data={[
    { x: "One" /*Here i need to present the key(service name) */ , y: 2 /*Here i need to present the value(counter)*/},
    { x: "Two", y: 4 },
    { x: "Three", y: 3 }
  ]}

Firestore 查询以获取服务名称:

  useEffect(() => { //Query to get the services from database and count them to later use.
    firebase
    .firestore()
    .collection("users")
    .doc(uid)
    .collection("confirmed-appointments").get().then((querySnapshot) => {
      let arrayofServices = [];
      querySnapshot.forEach((doc) => {
        arrayofServices.push(doc.data().serviceType)
      })
      //console.log("Array of services ", arrayofServices);
      setServices(arrayofServices);
    })
    
  }, [])

请问有什么建议可以让我的生活更轻松吗?

【问题讨论】:

    标签: javascript react-native svg victory-charts


    【解决方案1】:

    您可以使用 object.entries 并遍历属性并为图表创建一个数组并在图表中使用它。你可以运行下面的sn-p。

    const data = {
      "clean": 4,
      "haircut": 3,
      "wash": 1,
    };
    
    const arr = new Array();
    
    for (const [key, value] of Object.entries(data)) {
      arr.push({x:key,y:value});
    }
    
    console.log(arr)

    【讨论】:

    • 假设我知道键和值,创建 const 数据。实际上我从 Firestore 获取数据,所以如果用户添加服务,我需要手动更新 const 数据。我正在使用 firestore 查询编辑帖子
    • 不可以是我刚刚提供的任何对象,您可以使用任何具有相同键值格式的对象并将其转换为您想要的方式
    • 我将尝试将您的代码与我的代码相匹配,并在此处更新我的结果
    • 好的,所以你有一个数组'arrayofServices',你想将它转换成那个表格,对吗?我可以知道什么不起作用吗?
    • 我尝试了你的方式并按照你的建议做,但是当我像这样将数据传递给胜利派时:data={pieData} 我收到了这个红色警告:警告:失败的道具类型:无效的道具data 类型为 object 提供给 VictoryPie,预期为 array
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 2015-06-30
    • 1970-01-01
    • 2021-07-28
    • 2020-02-19
    • 1970-01-01
    相关资源
    最近更新 更多