Реагировать по умолчанию на свойства массива в требуемом объекте - PullRequest
2 голосов
/ 23 сентября 2019

У меня есть массив как необязательное свойство в требуемом объекте, и я хочу дать значение по умолчанию для этого массива.

const { classes, eItem } = props;

eItem: PropTypes.shape({
   eList: PropTypes.arrayOf(PropTypes.shape({
      id: PropTypes.number.isRequired,
      nameSurname: PropTypes.string.isRequired,
      img: PropTypes.string,
   })),
}).isRequired,

Example.defaultProps = {
   eItem: { 
      eList: [] 
   },
};

Я написал подобный defaultProps, но я вижу, что eList не определенв консоли.

Как указать значение по умолчанию для eList в виде пустого массива?

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Это лучшая практика, при которой реквизиты по умолчанию для элементов, требующих существительного, пишутся по умолчанию, так как вы гарантируете, что компоненту передаются необходимые реквизиты.

Так что в вашем случае удалите лишние и ненужныереквизиты по умолчанию, затем передайте элемент по умолчанию в реквизиты по умолчанию, такие как:

Example.defaultProps = {
   eItem: { 
      eList: [
         id: Some default number,
         nameSurname: "Some default text",
         img: "default path for a placeholder item ",
      ] 
   },
};
0 голосов
/ 23 сентября 2019

попробуйте эту форму

ReactComponent.propTypes={
  eItem:PropTypes.shape({
    eList: PropTypes.arrayOf(PropTypes.shape({

      id:PropTypes.number ,
      nameSurname: PropTypes.string,
      img: PropTypes.string
    }).isRequired

  })}

с добавлением defaultProps в качестве этой формы

ReactComponent.defaultProps = {
  eItem: { 
  eList: [
{id:10,nameSurname:"ddddfd",img:"mjjkjkjskdj"}
],
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...