gpt4 book ai didi

javascript - 在与 TypeScript 的 react 中使用状态

转载 作者:可可西里 更新时间:2023-11-01 01:48:40 25 4
gpt4 key购买 nike

我是 TypeScript 的新手。我在显示 this.state.something 时遇到问题在 render 方法中或将其分配给函数中的变量。

看看最重要的一段代码:

interface State {
playOrPause?: string;
}

class Player extends React.Component {
constructor() {
super();

this.state = {
playOrPause: 'Play'
};
}

render() {
return(
<div>
<button
ref={playPause => this.playPause = playPause}
title={this.state.playOrPause} // in this line I get an error
>
Play
</button>
</div>
);
}
}

错误说:[ts] Property 'playOrPause' does not exist on type 'ReadOnly<{}>'.

我试图将 playOrPause 属性声明为一种字符串类型,但没有成功。

我在这里缺少什么才能让它发挥作用?

最佳答案

您需要声明您的组件正在使用 State 接口(interface),它由 Typescript 的泛型使用。

interface IProps {
}

interface IState {
playOrPause?: string;
}

class Player extends React.Component<IProps, IState> {
// ------------------------------------------^
constructor(props: IProps) {
super(props);

this.state = {
playOrPause: 'Play'
};
}

render() {
return(
<div>
<button
ref={playPause => this.playPause = playPause}
title={this.state.playOrPause} // in this line I get an error
>
Play
</button>
</div>
);
}
}

关于javascript - 在与 TypeScript 的 react 中使用状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46987816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com