1. ホーム
  2. javascript

React: チェッカーは関数ではありません

2023-09-03 13:04:28

質問

Reactアプリのコンソールに奇妙な警告メッセージが表示されるのですが、これは何ですか?

警告 Failed propType: checker is not a function の render メソッドをチェックします。 Chart .

チェッカーメソッドを全く持っていません。もし、私の propTypes を削除すると、警告が消えます。何かいい方法はないでしょうか?

私のリアクトコンポーネントです。

var Chart = React.createClass({
  //...
  propTypes: {
    legend: React.PropTypes.bool,
    max: React.PropTypes.number,
    min: React.PropTypes.number,
    series: React.PropTypes.arrayOf(
      React.PropTypes.shape({
        label: React.PropTypes.string,
        values: React.PropTypes.arrayOf(
          React.PropTypes.arrayOf(
            React.PropTypes.oneOfType(
              React.PropTypes.number,
              React.PropTypes.object // Date
            )
          )
        ),
        colorIndex: React.PropTypes.string
      })
    ).isRequired,
    threshold: React.PropTypes.number,
    type: React.PropTypes.oneOf(['line', 'bar', 'area']),
    units: React.PropTypes.string,
    xAxis: React.PropTypes.arrayOf(React.PropTypes.string)
  },
  render: function() {
    return (<svg>...</svg>);
  }
  //...
});

Chartコンポーネントに送るペイロードは、このようなものです。

var series = [
  {label: 'first', values: [[5,2], [4,3], [3,3], [2,2], [1,1]], colorIndex: "graph-1"},
  {label: 'second', values: [[5,3], [4,2], [3,0], [2,0], [1,0]], colorIndex: "graph-2"}
];

どのように解決するのですか?

React リポジトリにプルリクエストがマージされ、このようなミスが再び発生したときに開発者のためにより良いフィードバックを提供します。

さて、検証メッセージは以下のようになります。

oneOfに与えられた引数が無効です。

https://github.com/facebook/react/pull/3963

これはReact 0.14の一部であるべきです。