Не удалось передать данные дочернему компоненту реакции - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в React, поэтому мне очень жаль, если мой вопрос глупый, но я здесь застрял. Я пытаюсь отправить данные из родительского компонента в дочерний компонент

Родитель:

export default function Dashboard() {

const [msg, setMSG] = useState<string>("Hello!");

  return (

    <Table message={msg}/>
  );

}

Ребенок:

export default function Orders(message: string) {
  const classes = useStyles();
  return (
    <React.Fragment>
{message}
</React.Fragment>
  );
}

И я получаю сообщение об ошибке:

Тип '{сообщение: строка; } 'не может быть присвоено типу' строка '.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Похоже, у вас проблема несоответствия типов - это означает, что вашему дочернему компоненту передается object

Type '{ message: string; }'

тогда как , ваш дочерний компонент указал, что его входные данные являются одним string, выполнив это - Orders(message: string)

Попробуйте следующее, что сохраняет проверку типов:

 // now `props` is of type object, 
 // with a `key` called `message`, the value of which is of type `string`
 export default function Orders(props: {message: string}) {
  const classes = useStyles();
  return (
    <React.Fragment>
      {props.message}
    </React.Fragment>
  );
}
0 голосов
/ 19 июня 2020

Если вы пытаетесь передать это как опору, у вас есть два варианта: вы можете деструктурировать сообщение из реквизита или использовать props.message. Я покажу вам деструктурированный способ:

 export default function Orders({message: string}) {
  const classes = useStyles();
  return (
    <React.Fragment>
      {message}
    </React.Fragment>
  );
}

Надеюсь, это поможет

...