我试图使用回调将验证输入。
当我试图在文本框中输入时,我遇到了下面的错误。有人能帮我解释一下为什么我会犯这个错误,以及我如何纠正它吗。
不允许回调吗?我错过了什么?
未捕获错误:对象作为React子对象无效(找到:具有键{dispatchConfig、_TargetList、nativeEvent、type、target、currentTarget、eventPhase、bubbles、cancelable、timeStamp、defaultPrevented、isTrusted、isDefaultPrevented、isPropagationStopped、_dispatchListeners、_dispatchInstances}的对象)。如果要呈现子对象集合,请改用数组。在div中(由HelloWorldWithProperties5创建)在HelloWorldWithProperties5中(由Parent2创建)在Parent2中(由App创建)在div中(由App创建)在App at invariant中(react dom.development.js:55)
import * as React from 'react';
interface IProps{
userName?:string
}
const HelloWorldWithPropertiesES5= (props:IProps)=>{
return (
<div>
Hello {props.userName}
</div>
)
}
export default HelloWorldWithPropertiesES5;
import * as React from 'react'
interface IProps {
userName : string;
onChange : (event:any) => void;
}
export const NameEditComponent = (props : IProps) =>
<>
<h2>this shows event changes</h2>
<label>Update name:</label>
<input value={props.userName}
onChange={props.onChange}
/>
</>
export default NameEditComponent;
import * as React from 'react';
import HelloWorldWithPropertiesES5 from 'src/Lesson2-Properties/HelloES5';
import NameEditComponent from './MyChild';
interface IState {
userName : string;
}
export class Parent2 extends React.Component<{},IState> {
constructor(props:any) {
super(props);
this.state = {userName: 'defaultUserName'};
}
public setUsernameState = (newName:string) => {
this.setState({userName:newName},()=>this.validateName());
}
public validateName () {
if (this.state.userName.length === 0) {
alert('error')
}
}
public render() {
return (
<>
<HelloWorldWithPropertiesES5 userName={this.state.userName} />
<NameEditComponent userName={this.state.userName} onChange={this.setUsernameState} />
</>
);
}
}
export default Parent2;
包裹起来...我认为你的包装应该看起来更像:
public setUsernameState = (event) => {
const {newName} = event.target;
if (!this.validateName(newName)) {
customMethodToSetErrors();
}
this.setState({userName: newName});
}
编辑:
对不起,,我不知道setState的回调是做什么的...所以你的回调很好,你的问题应该只是处理程序的参数类型和你获得新值的方式:)所以试着从事件对象参数中获得一个新值。
我不是一个打字专家,所以也许我的签名类型有点不对劲,但应该是这样的:
public setUsernameState = (event: object) => {
this.setState({ userName: event.target.value }, () => this.validateName());
}
问题内容: 我正在运行代码,但是得到的是“无效状态,ResultSet对象已关闭”。错误。是什么导致错误? 问题答案: 您无法对当前使用进行迭代的查询执行另一个SQL查询。这样做会关闭先前打开的游标(您的查询代表): 引用Statement的API文档: 默认情况下,每个Statement对象只能同时打开一个ResultSet对象。因此,如果一个ResultSet对象的读取与另一个的读取交错,则每
问题内容: 我在使用gridview单击按钮时遇到以下错误 当我按下gridview内的按钮时会发生这种情况,奇怪的是,我有另一个gridview,在运行不同代码但没有错误的列中也有自定义按钮。以下是该页面的代码及其背后的代码。 和实际页面: 现在我想知道,这是否有什么关系的事实,是内部的?因为我的其他工作正常的表不是… 注意:由于字符限制,不得不从页面上剪切一些代码 问题答案: 1)GridVi
问题内容: 我有以下ajax请求: 由于某种原因,错误的回调被称为事件,尽管http状态代码为200,即。该请求是可以的。为什么是这样? 问题答案: 问题可能是从网址返回的json数据格式错误。当服务器实际返回内容时,http状态代码为200。但这并不意味着数据是正确的json。检查返回的字符串化json数据格式正确。 我要回答自己的邀请,因为我是很难学到的。我没有在json数据中转义“-”引号字
问题内容: 我正在尝试使用用户代理将json设置为一种状态,但出现错误: 未捕获的不变违规:对象作为React子对象无效(找到:具有键{…}的对象)。如果您打算渲染孩子的集合,请使用数组代替,或者使用React附加组件中的createFragment(object)包装对象。 设置状态的方法: 服务 杰森 问题答案: 您无法执行此操作:由于您的错误提示您尝试执行的操作无效。您正在尝试将整个数组呈现
问题内容: 我收到此错误: 这是什么意思? 这是我的代码: 我究竟做错了什么? 按提交按钮后出现此错误。 问题答案: 在您的aspx文件中,您应该这样放置第一行: 如果您已经有类似的东西, 那么只需添加其余的=> 我建议不要这样做。
使用Alamofire 4/Swift 3,您如何区分由于以下原因而失败的请求: 网络连接(主机关闭,无法连接到主机)vs 代码: 我们希望以不同的方式处理每个案件。在后一种情况下,我们要询问回答。(在前一种情况下,我们不知道,因为没有回应)。