我在 React 中编写了以下组件,出现错误。 希望得到帮助。
主要组件:
export interface ICode {
code: (code: string) => void;
} 导出默认类 UserCode 扩展 React.Component{
state = {
formFile: File,
code: ""
}
//single
fileSelected(e: React.ChangeEvent<HTMLInputElement>) {
var file = e.target.files;
console.log(file);
if (e.target.files)
this.setState(
{ formFile: e.target.files[0] }
)
}
aaa() {
let value = (document.getElementsByClassName("user-code")[0] as HTMLInputElement).innerText;
alert(value);
console.log(value);
return value;
}
updateCodeInFather() {
this.props.code(this.state.code);
}
render() {
return (
<div>
{/* <h6>Write your code here</h6> */}
<Editor className="user-code"
value={this.state.code}
onChange={code => { this.setState({ code }); this.updateCodeInFather(); }}
defaultLanguage="cpp"
width={590}
height={325}
defaultValue={"void setup()\n{\n// put your setup code here, to run once:\n}\nvoid loop()\n{\n// put your main code here, to run repeatedly:\n}"}
/>
<div>
<input placeholder="browse" name="browse" id="browse" type="file" onChange={(e) => this.fileSelected(e)} accept=".txt, .ino" ></input>
</div>
</div>
);
}
import Editor from './TagLanguage/Editor'
ReactDOM.render(
<React.StrictMode>
{
<Editor></Editor>
}
</React.StrictMode>,
document.getElementById('root')
);
出现错误: 没有重载匹配这个调用。 重载 1 of 2,'(props: Readonly): UserCode',出现以下错误。 类型“{}”中缺少属性“代码”,但类型“只读”需要。 重载 2 of 2, '(props: ICode, context?: any): UserCode',出现以下错误。 类型“{}”中缺少属性“代码”,但类型“只读”中需要。
答案 0 :(得分:0)
需要更清楚地了解如何使用 ICode。 如果你想让 props 和 state 都有这个接口,可以考虑这样声明 Component:
export default class UserCode extends React.Component<ICode,ICode>
如果你只想要道具有这个界面:
export default class UserCode extends React.Component<ICode,{}>