- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 SiteTechnologyForm
的组件
class SiteTechnologyForm extends React.Component {
static propTypes = {
name: PropTypes.string,
site_technology_id_number: PropTypes.string,
common_site: PropTypes.string,
title: PropTypes.string,
errors: PropTypes.string
}
constructor(props) {
super(props);
this.state = {
logged_in: localStorage.getItem('token') ? true : false,
name: props.name || '',
site_technology_id_number: props.site_technology_id_number || '',
common_site: props.common_site || '',
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
UNSAFE_componentWillMount() {
if (!this.state.logged_in) {
browserHistory.push("/accounts/login");
}
}
handleChange(event) {
if (event.target && event.target.name){
this.setState({[event.target.name]: event.target.value});
}
}
handleSubmit() {
let payload = {
"common_site": this.state.common_site,
"name": this.state.name,
"site_technology_id_number": this.state.site_technology_id_number
};
this.props.handleSubmit(payload)
}
render() {
const {
title,
errors
} = this.props;
return !this.state.logged_in ? '' :
<BaseForm title={title} handleSubmit={this.handleSubmit} errors={errors} data={this.state}>
<CommonSiteAutocomplete
label="CommonSite *"
id="id_common_site"
required={true}
inputProps={{
name: "common_site",
onChange: this.handleChange,
value: this.state.common_site,
required: true
}}
/>
<CustomInput
labelText="Name *"
id="id_name"
formControlProps={{
fullWidth: true
}}
inputProps={{
type: "text",
onChange: this.handleChange,
name: "name",
value: this.state.name,
required: true
}}
/>
<CustomInput
labelText="Site Technology ID *"
id="id_site_technology_id_number"
formControlProps={{
fullWidth: true
}}
inputProps={{
type: "text",
onChange: this.handleChange,
name: "site_technology_id_number",
value: this.state.site_technology_id_number,
required: true
}}
/>
</BaseForm>
}
}
ESlint 提示 props 验证中缺少 handleSubmit
。
SiteTechnologyForm 用于其他组件,例如下面的 AddSiteTechnology
:
class AddSiteTechnology extends React.Component {
constructor(props) {
super(props);
this.state = {
errors: ''
};
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(data) {
fetch(siteTechUrl, {
headers: {
'Content-Type': 'application/json',
Authorization: `Token ${localStorage.getItem('token')}`
},
method: 'POST',
body: JSON.stringify(data),
})
.then(response => {
if (response.status >= 400) {
return this.setState({errors: response.statusText});
}
browserHistory.push("/site_technologies/list");
})
}
render() {
return <SiteTechnologyForm title="Add Site Technology" handleSubmit={this.handleSubmit} errors={this.state.errors}/>
}
}
我最初尝试使用
handleSubmit: PropTypes.function
但是当我尝试运行该网页时,我在控制台中收到此错误
checkPropTypes.js:19 警告: Prop 类型失败:SiteTechnologyForm: Prop 类型 handleSubmit
无效;它必须是一个函数,通常来自 prop-types
包,但接收到 undefined
。
如何解决 handleSubmit 未通过验证的情况?
最佳答案
根据 ESLINT,您还需要为 handleSubmit Prop 提供 Prop 类型。函数类型由 func
而不是 function
处理:
handleSubmit: PropTypes.func
关于reactjs - Eslint 提示 this.props.handleSubmit 在 prop 验证中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52473264/
我遵循文档中的说明 https://www.gatsbyjs.org/docs/eslint/ ,并想覆盖其中一条规则,但不影响其他规则,我所做的是创建一个 .eslintrc.js 文件。 这是文件
是否可以覆盖 TSLINT (tslint.json) 中特定文件的规则,就像沿着这些行的配置一样: "overrides": [{ "files": [ "*.spec.js" ], "ru
我一直试图让 ESLint 在 VS Code 中处理一个新的 Angular 项目,但它无法加载“@typescript-eslint/eslint-plugin”。在过去的 3 个小时里,我一直在
我在某个文件夹中有一些文件,而这些文件来自供应商,因此我无法控制它们。我想为该目录和所有子文件夹中的所有文件禁用 eslint。 最佳答案 您可以添加 .eslintignore在项目根目录下,和.g
我第一次尝试使用汇总,但我不明白为什么会出现此错误: TypeError: eslint is not a function 我之前安装了 rollup (v1.1.0) 然后 eslint npm
我正在尝试使用预提交 Hook 在提交发生之前检测 eslint 错误。我正在使用 husky 和 lint-staged。但它对 src 中的所有文件运行 lint 命令,而不是仅对暂存文件运行
我不确定我正在使用的东西是否存在错误,或者我是否只是在这里设置了错误,但是我在运行 eslint src --fix 关于“eslint-plugin-@typescript-eslint” 我已经指
我正在按照说明从 here 设置 ESLint . ESLint 失败并显示以下消息: $ npm run lint > IACS@1.0.0 lint /some/path/sscce-typesc
我正在使用 airbnb-eslint 和 babel-plugin-module-resolver。我在使用别名导入的每个 js 文件中都收到此错误。 { "extends": ["plugi
我正在将我的项目从 tslint 重新配置为 eslint。我可以手动运行 eslint,但 webpack 无法运行并显示以下错误消息: Module build failed (from /pat
我正在尝试使用 svelte 制作一个应用程序来试用它。 我想设置 prettier 和 eslint,我安装了这些依赖项和 Svelte for VS Code 的扩展。 "dependenci
我正在寻找一个规则来对齐所有 =在任务上。 像这样的事情将是积极的: var foo = 12; var barfoo = 21; var barfoobar = 22; 像这样的事
设置后eslint并在忽略列表中添加一些文件,每次运行 eslint 时,它都会生成有关被忽略文件的警告: /path/to/file/name.min.js 0:0 warning Fil
是否可以将 ESLint 配置为仅将规则应用于名称与特定模式匹配的文件?我知道在目录中可以有单独的规则表,但如果结构如下: app | |- module1 | |- module1.js |
有没有办法禁用文件夹的特定规则?例如,我不希望 test 文件夹中的所有测试文件都包含必需的 JSDoc 注释。有办法做到这一点吗? 最佳答案 要从 eslint 规则中忽略某些文件夹,我们可以在根目
缩进规则似乎无法禁用;如何(在配置设置中)禁用此规则?谢谢。 最佳答案 将规则设置为 "off"在你的配置中是这样的: "rules": { "indent": "off" } 您可以在 the
ESLint 有 dot-location允许决定您是否愿意的规则 object. property 或者 object .property 当打破点时(我更喜欢后者)。 但是,我找不到确保点与对象具
这些库之间有什么区别? babel-eslint [ github.com/babel/babel-eslint ] eslint-plugin-babel [github.com/babel/esl
我想把 Prettier 和 ESLint 一起用,但是一个接一个用就遇到了一些冲突。我看到有这三个包似乎允许它们串联使用: prettier-eslint eslint-plugin-prettie
我正在尝试使用React.js和TypeScrip在ASP.NET核心MVC项目中启用eslint linting,并且正在努力修复上面的错误。。我使用的是Visual Studio2022社区版17
我是一名优秀的程序员,十分优秀!