Почему этот объект не проходит мою собственную проверку PropTypes - PullRequest
1 голос
/ 23 января 2020

У меня есть проверка PropTypes следующим образом:

static propTypes = {
    tileHost: PropTypes.string,
    center: PropTypes.arrayOf(PropTypes.number),
    zoom: PropTypes.number,
    layers: PropTypes.objectOf(PropTypes.exact({
      visible: PropTypes.boolean,
      selected: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.node)),
      onClick: PropTypes.func,
      activeType: PropTypes.string
    })),
    focusBbox: PropTypes.arrayOf(PropTypes.number)
  }

Я называю это так:

<Map
      height='350px'
      tileHost='mapbox'
      layers={{
        parcels: {
          visible: true,
          selected: {
            'APN': [apn]
          }
        },
      }}
      focusBbox={bbox}
    />

Мне это кажется правильным, но эта ошибка выдается:

Warning: Failed prop type: Invalid prop `layers.parcels` key `visible` supplied to `Map`.
Bad object: {
  "visible": true,
  "selected": {
    "APN": [
      "11141327"
    ]
  }
}
Valid keys: [
  "visible",
  "selected",
  "onClick",
  "activeType"
]

Это ошибка в проп-типах (15.7.2) или я что-то не так делаю?

1 Ответ

3 голосов
/ 23 января 2020

visible свойство должно быть PropTypes.bool:

Map.propTypes = {
  layers: PropTypes.objectOf(
    PropTypes.exact({
      // Not PropTypes.boolean
      visible: PropTypes.bool
    })
  )
};
...