Reactjs, Typescript-свойство не существует в дочернем компоненте



Я использую typescript 2.3.4 с React. Я получаю ошибку TS2339: ошибка TS2339: свойство 'name' не существует на типе ' Readonly & Только Для Чтения'. Ошибка возникает, когда я пытаюсь объявить свойство в дочернем компоненте. Как правильно ссылаться на свойство в дочернем компоненте?



По какой-то причине код не выполняется в script runner.



Любая помощь ценится.






export interface person {
name: string;
age: number;
}

interface State {
personArray: person[];
}

interface Props {

}


class ProfileData extends React.Component<{}, person> {
public render() {
return (
<section>
<section>
<h3>profile 1</h3>
<div>{this.props.name}</div>
</section>
</section>
)

}
}

export class Profile extends React.Component<Props, State> {
public state: State;
public props: Props;
constructor(props: Props){
super(props);
this.state = {
personArray: [
{
name: 'bazaaa',
age: 42
},
{
name: 'louis',
age: 24
}
]
};
}

public render() {
let profile1 = this.state.personArray[0];
return (
<ProfileData
name={profile1.name}
/>
)
}
}

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
644   1  

1 ответ:

Вы забыли объявить name как свойство React в определении класса ProfileData. Что-то вроде этого должно сработать:

class ProfileData extends React.Component<{name: string}, person> {

Comments

    Ничего не найдено.