J'apprends à développer des applications en utilisant React comme front-end et spring comme back-end. Lors du développement d'un exemple d'application, j'ai rencontré une erreur comme suit:
`(26,28): Property "value" does not exist on type 'Readonly<{}>`
Cette erreur est générée à partir de mon fichier App.tsx qui contient la définition des composants React dans JSX. Le composant de classe avec l'état "valeur" est défini comme suit.
class App extends React.component{
constructor(props:any) {
super(props);
this.state = {
value:[],
isLoading:false
};
}
...
25 render(){
26 const value = this.state.value;
27 const isLoading = this.state.isLoading;
...
}
}//End of Class*
Je ne comprends pas ce qui ne va pas. Quelqu'un peut-il m'aider à regarder les choses sous un angle différent afin que ce problème puisse être abordé d'une manière différente?
Avez-vous déclaré une interface pour votre state
?
Jetez un oeil à Bonjour React et TypeScript qui montre un exemple d'utilisation des interfaces avec React Composants.
Je soupçonne que vous manquez quelque chose comme ceci: interface IMyComponentProps {someDefaultValue: string}
interface IMyComponentState {
someValue: string
}
class App extends React.Component<IMyComponentProps, IMyComponentState> {
// ...
}
export default class ReactTodoWebpart extends React.Component<IReactTodoWebpartProps,any> {
/**
*
*/
constructor(props:IReactTodoWebpartProps) {
super(props);
this.state={
todoItems:[]
};
this.props.todoClient.getItems().then(resolvedItems=>{
this.setState({
todoItems: resolvedItems,
})
});
}
// I also face this issue and fixed it by using any in the second argument