javascript - React 道具和状态值不更新
问题描述
这是一个使用 props 和 state 的简单反应示例。当用户在给定的输入槽中键入名称时,显示的名称应在输出部分中相应更新。但值不会更新。你能找到代码中的错误吗?
应用程序.js
import "./App.css";
import UserInput from "./Person/userInput";
import UserOutput from "./Person/userOutput";
class App extends Component {
state = {
userName: [
{ name: "Max", age: 28, proff: "doctor" },
{ name: "Tom", age: 20, proff: "engg" },
{ name: "Dev", age: 23, proff: "writter" }
]
};
eHandler = event => {
this.setState = ({
userName: [
{ name: event.target.value, age: 28, proff: "doctor" },
{ name: event.target.value, age: 20, proff: "engg" },
{ name: event.target.value, age: 23, proff: "writter" }
]
});
};
render() {
return (
<div className="App">
<div className="card">
<UserOutput
name={this.state.userName[0].name}
age={this.state.userName[0].age}
proff={this.state.userName[0].proff}
/>
<UserInput changed={this.eHandler} />
</div>
<div className="card">
<UserOutput
name={this.state.userName[1].name}
age={this.state.userName[1].age}
proff={this.state.userName[1].proff}
/>
</div>
<div className="card">
<UserOutput
name={this.state.userName[2].name}
age={this.state.userName[2].age}
proff={this.state.userName[2].proff}
/>
<UserInput changed={this.eHandler} />
</div>
</div>
);
}
}
export default App;
组件 - userInput.js
const userInput = props => {
return (
<div>
<input type="text" onChange={props.changed}></input>
</div>
);
};
export default userInput;
组件 - userOutput.js
import React from "react";
const userOutput = props => {
return (
<div>
<p>
{props.name} of age {props.age} is a {props.proff}
</p>
</div>
);
};
export default userOutput;
解决方案
您在处理程序中的状态更新是错误的。它应该是以下内容。
this.setState({
userName: [
{ name: event.target.value, age: 28, proff: "doctor" },
{ name: event.target.value, age: 20, proff: "engg" },
{ name: event.target.value, age: 23, proff: "writter" }
]
});
推荐阅读
- typescript - 如何在打字稿中定义两种类型的数组
- php - 如何在运行中使用 php 构建 mysql 查询
- css - 容器内的弹性尺寸项目
- oracle - VPD 策略失败并出现 ORA-28113:策略谓词有错误
- windows - 使用文件名和当前日期戳创建多个 txt (Text_01.txt --- Text_50.txt) 文件
- mysql - 正确显示 MySQL 日期
- javascript - 如何在“react-native-datepicker”中使用“null”数据?如果用户愿意,我想使用空数据
- video - 将 YUV420 帧编码为 VP9
- php - 使用 preg_replace 从 img 标签中删除宽度和高度会导致空值
- excel - 在excel VBA中通过硒为每个谷歌搜索创建新标签