- 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/
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我仍在学习如何将 API 数据与 react 和 nextjs 一起使用。但是,为什么我的函数只在我编写 {props.props.title} 而不是我期望的 {props.title} 时起作用?
我正在用 TypeScript 构建一个 React 应用程序。我有一个 RequiresPermission基于谓词的组件应该渲染一个或另一个组件并转发所有 Prop 。 type Props =
我想通过 gatsby 布局传递我所有的 props。例如: import React, { Component } from 'react'; export default class Exampl
如果我使用合成属性,那我为什么不直接说: self.property = nil; 这将释放引用计数,并确保我没有悬挂指针。 看起来很简单,但我看到的 99% 的代码似乎都是这样做的: [proper
Eslint 抛出 eslint(react/prop-types) 错误,尽管已经声明了 propTypes。我正在使用 eslint-plugin-react 我研究了其他几个类似的问题以及 li
我正在使用以下由 linter eslint-plugin-react 解析的代码。它返回警告: "product is missing in props validation" 当我在底部的 pro
我正在尝试在 React 应用程序中添加 TypeScript。 版本: "react": "16.9.0", "typescript": "3.5.3", 我有一个像这样的数组 import aLo
我有一个组件 . 如果组件没有 this.props.children , 我想设置 Prop ariaLabel作为isRequired ,否则 in 可以是可选的。我该怎么做? ariaLabe
我应该用一个代替另一个吗?一起使用它们更好吗?谢谢。 最佳答案 prop in obj 检查 obj 是否有名为 prop 的属性,即使它只是从原型(prototype)继承而来。 obj.hasOw
我的组件 Text有 2 个 Prop :isHideable: boolean和 hidden: boolean .我如何允许 Hidden仅在 isHideable 时作为 Prop 是true
我试图将带有一些 Prop 的功能组件发送到另一个组件,并在接收组件中尝试键入检查该组件的某些 Prop 。这是代码: // BaseButton.tsx export type ButtonProp
是否可以从也作为 prop 传递的未知组件推断出正确的 props 类型? 如果已知组件(存在于当前文件中),我可以获得 Prop : type ButtonProps = React.Compone
我对 react 还很陌生,这是我正在努力解决的问题。 有一个父组件 家长 它将 Prop 传递给 child 。 其中一个 Prop ,包括一个要渲染的元素,如下所示: 在子组件中,我想获取这个组
我想做一个 Tabs推断 active 的可能值的组件prop 基于它的 child 拥有的东西 name Prop 。这就是我尝试这样做的方式: import React from 'react'
我对 react 还很陌生,并且只有当用户开始向下滚动时,我才尝试将更多信息加载到记录数组中。问题是新信息出现在数组中,但如果您尝试调用它,它将返回undefined。我在这里不明白什么? 父组件:
因此,如果我对一个组件有很多不同的 Prop ,我希望我可以做类似的事情 const { ...props } = props; 而不是 const { prop1, prop2, prop3, ..
这是我寻求指导的问题类型,因为我不确定我正在寻找的内容是否存在...... 上下文:我正在使用 Firestore 来保存数据,并且正在构建一个可重用的自定义 Hook (React 16.8),以便
我有一个 React 组件,它获取一个配置对象作为 prop,它看起来像这样: { active: true, foo: { bar: 'baz' } } 在
如何附加另一个属性?我有一个 react 组件,其中有人传入 ...props,我想附加一个额外的 Prop 最佳答案 请记住,传递 Prop 的顺序将决定将哪个值传递给该组件。这适用于有两个同名
我是一名优秀的程序员,十分优秀!