#reactjs #ecmascript-6
#reactjs #ecmascript-6
Вопрос:
Я наткнулся на этот фрагмент кода и был смущен тем, что происходит с props: { name: string; description: string }
? Как новичок, я понимаю возможность отправки props
компонентам.
Однако, похоже, здесь происходит гораздо больше. Если это как-то связано с динамической генерацией, то я бы понял, что объект присваивается реквизиту через =
знак. Однако, что случилось с точкой с запятой?
export default function InfoCard(props: { name: string; description: string }) {
return (
<Card>
<CardContent>
<Typography>
// This evaluates props.name so that the value of props.name will show
{props.name}
</Typography>
<Typography>
// This evaluates props.description so that the value of props.description will show
{props.description}
</Typography>
</CardContent>
</Card>
);
}
Ответ №1:
Это недопустимый Javascript: код здесь представляет собой Typescript, надмножество Javascript.
Объект после :
является аннотацией типа, что означает, что props должен быть объектом со свойством a name
и a description
, которые оба являются строками.
Эквивалентный Javascript такой же, без аннотаций типов:
export default function InfoCard(props) {
return (
<Card>
<CardContent>
<Typography>
// This evaluates props.name so that the value of props.name will show
{props.name}
</Typography>
<Typography>
// This evaluates props.description so that the value of props.description will show
{props.description}
</Typography>
</CardContent>
</Card>
);
}
Вы можете проверить отправленный код на игровой площадке typescript
Комментарии:
1. Аааа! Итак, это typescript … И недопустимо в javascript.
Ответ №2:
Вот как я пишу :
export default function InfoCard({name , description}) {
return (
<Card>
<CardContent>
<Typography>
// This evaluates props.name so that the value of props.name will show
{name}
</Typography>
<Typography>
// This evaluates props.description so that the value of props.description will show
{description}
</Typography>
</CardContent>
</Card>
);
}
Комментарии:
1. Мммм… Не могли бы вы сделать здесь небольшой комментарий, пожалуйста?
2.
Destructuring Arguments
также доступны здесь . Это означает, что вместо того, чтобы один раз получать props в качестве параметра, а затем обращаться к свойствам, вы можете написать{name , description}
3. Спасибо, что пытались помочь. Я ценю это!
4. Я также благодарен