reactjs - 键入没有道具的 React 组件类的正确方法是什么?
问题描述
根据定义,React 项目中的顶级组件不会有任何 props 传递给它。使用 Typescript 时输入此内容的适当方法是什么?
我最近一直在使用以下作为模型,但也许有更简单的方法?
interface AppState {
...
}
class App extends React.Component<{},AppState> {
constructor(props: never) {
super(props);
this.state = {
...
}
...
}
...
}
解决方案
构造函数主要用于声明state
或绑定您的类方法。现在,如果你省略它,构造函数会被隐式调用,不需要声明。因此,一旦你省略它,它可能会让你想知道如何绑定或声明状态。
您可以在 state 属性之外声明,同样您可以绑定方法,将它们声明为箭头函数:
class App extends React.Component<{},AppState> {
// state can be declared outside from constructor
state: AppState = { name: '' }
// arrow function avoid the need to bind
onChange = (e: React.ChangeEvent<HTMLInputElement>) => {
this.setState({name: e.target.value})
}
}
这样,您可以在使用基于类的组件时编写更简洁的语法。
推荐阅读
- java - 如何转换名为“q”的双精度值并显示小数点前/后的值?
- powershell - 如何平衡有关在 Windows 上安装 Scoop 的安全性(PowerShell 执行策略更改)问题?
- java - 编写一个程序,测试二维数组的同一行或同一列是否有两个 1
- python - 以事后模式启动 pdb。避免输入“c”的任何技巧
- flutter - 部署到 Web 服务器时不显示 Flutter Web 资产图像
- swift - 参数类型不符合预期类型“WKScriptMessageHandler”
- android - 使用 react-native-firebase 验证电话号码(Otp 验证)
- javascript - 使用 jQuery table-sorter 插件对日期列进行排序的问题
- c# - 在 ASP.Net 中动态取消选中复选框时,CheckBox 不会触发 CheckedChanged 事件
- c# - 为什么通过调用Task.Run和ThreadPool.QueueUserWorkItem排队到ThreadPool时线程数增加了不止一个?