如何解决更新 属性 'd' 视图托管 by:RNSVGPath InvalidNumber 时的错误

How to resolve Error while updating property 'd' of a view managed by:RNSVGPath InvalidNumber

我需要使用 react-native-chart-kit 加载我的 SQL 服务器数据,但是当我使用此代码时出现此错误:

更新 属性 'd' 管理的视图时出错:RNSVGPath 无效的 无效号码

import React from "react";
import { Text, View, Dimensions } from "react-native";
import { LineChart } from "react-native-chart-kit";
export default class Home extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      isLoading: true,
      data: {
        labels: [
          "Gen",
          "Feb",
          "Mar",
          "Apr",
          "Mag",
          "Giu",
          "Lug",
          "Ago",
          "Set",
          "Ott",
          "Nov",
          "Dic",
        ],
        datasets: [
          {
            data: [],
          },
        ],
      },
    };
  }

  GetData = () => {
    const self = this;

    return fetch("http://192.168.1.5:80/graph.php")
      .then((response) => response.json())
      .then((responseJson) => {
        // clone the data from the state
        const dataClone = { ...self.state.data };

        const values = responseJson.map((value) => value.ChiffreAffaire);

        dataClone.datasets[0].data = values;

        self.setState({
          isLoading: false,
          data: dataClone,
        });
      })
      .catch((error) => {
        console.error(error);
      });
  };

  render() {
    return (
      <View>
        <LineChart
          data={this.state.data}
          width={Dimensions.get("window").width} // from react-native
          height={220}
          yAxisLabel={"$"}
          chartConfig={chartConfig}
          bezier
          style={{
            marginVertical: 8,
            borderRadius: 16,
          }}
        />
      </View>
    );
  }
}

我从 php 文件中获取的数据如下:[{"ChiffreAffaire":"4800.00"},{"ChiffreAffaire":"12000.00"}]

<?php

$serverName="DESKTOP-T5SLVUB\SQL2008R2";
$connectionInfo=array("Database"=>"Netos_DB","UID"=>"sa","PWD"=>"123");
$conn=sqlsrv_connect($serverName,$connectionInfo);
$sql = "select  ChiffreAffaire from V502_client where Mois=2 and Annee=2020 "; 
$stmt = sqlsrv_query( $conn, $sql  );
 while( $row[] = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ){
      $Item = $row;
      $json = json_encode($Item);    
}

echo $json;
?>

我不知道问题出在哪里,也不知道为什么会出现此错误;如果你有任何想法,请

我解决了我的问题!!!! 对于那些有同样问题的人,我会向你解释错误: 好吧,问题是我的 LineChart 在完全重新加载之前获取数据,因此它变为空,这是一个无效的数字格式;

所以你要做的是在 return 之前添加渲染方法:

 if(this.state.isLoading){
    return(
      <View style={{flex: 1, padding: 20}}>
          <ActivityIndicator/>
        </View>

    )
  }

所以在加载所有数据之前我们不会传递给折线图

这对我有用:

{
    this.state.loadComplete &&
        (<LineChart
            data={this.state.dt}
            width={Dimensions.get("window").width} // from react-native
            height={this.height}
            yAxisLabel=""
            yAxisSuffix="b"
            yAxisInterval={1} // optional, defaults to 1
            chartConfig={this.config}
            bezier
            style={{
                marginVertical: 8,
                borderRadius: 16
            }}
        />)
}