我已經有很長一段時間沒有用 React 做過任何事情了,更不用說我在 sharepoint 中沒有做過很多事情了。我使用 yeoman 生成器創建了一個簡單的 React 應用程式,現在我在嘗試連接狀態時遇到了麻煩。
以下代碼會生成此錯誤: “只讀<{}>”型別上不存在屬性“show”。
還有其他幾篇關于導致此問題的帖子,但我無法在我的應用程式中成功修復它。似乎生成器創建并參考了 props 檔案。我看到一篇帖子說我需要為狀態創建(和參考)一個類似的檔案?我試過仍然無法讓它作業。任何幫助將不勝感激。
import * as React from 'react';
import styles from './SpetSelfServiceQuestionnaire.module.scss';
import { ISpetSelfServiceQuestionnaireProps } from './ISpetSelfServiceQuestionnaireProps';
import { escape } from '@microsoft/sp-lodash-subset';
export default class SpetSelfServiceQuestionnaire extends React.Component<ISpetSelfServiceQuestionnaireProps, {}> {
constructor( props ) {
super( props );
this.state = { show: true }
this.toggleDiv = this.toggleDiv.bind(this)
}
toggleDiv = () => {
const { show } = this.state;
this.setState( { show: !show })
}
uj5u.com熱心網友回復:
React.Component<ISpetSelfServiceQuestionnaireProps, {}>
泛型的第二個引數是狀態的型別。您已經說過狀態將是一個空物件,因此當您嘗試做其他事情時,打字稿會指出不匹配。
看起來您希望狀態是這樣的:
interface ISpetSelfServiceQuestionnaireState {
show: boolean;
}
export default class SpetSelfServiceQuestionnaire extends React.Component<
ISpetSelfServiceQuestionnaireProps,
ISpetSelfServiceQuestionnaireState
> {
//...
}
它不需要在另一個檔案中,除非你想要它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/371417.html
下一篇:在物件內的陣列屬性中找到一個詞
