gpt4 book ai didi

javascript - 如何更新由 REACTJS 中的数组映射呈现的输入文本

转载 作者:行者123 更新时间:2023-12-04 02:54:02 24 4
gpt4 key购买 nike

const data = [
{
title: "Hello World",
company: [
"Google",
"Apple",
"Facebook"
]
}
];

class App extends React.Component {
render() {
return (
     <ul>
      {data[0].company.map((item, index) => (
         <input type="text" key={index} value={item}></input>
      ))}
     </ul>
  );
}
}

ReactDOM.render(<App />, document.getElementById("app"));

它呈现完美,但是当我试图编辑它时
编辑文本。 (不可编辑)
如果我在具有空白区域的同一数组中再添加一个输入
重视它也不起作用(未更新)。

最佳答案

您应该使用 statecontrolled components为了这。我强烈建议您实际阅读 React 在其网站右侧显示的主要概念,因为这将使您的开发过程更加轻松。

要将受控组件原理应用于当前代码,您需要将 onChange 事件绑定(bind)到您的输入:

class App extends React.Component {
state = {
title: "Hello World",
companies: [
"Google",
"Apple",
"Facebook"
],
};

updateCompany(newName, index) {
const { companies } = this.state;
const newCompanies = [...companies];
newCompanies[index] = newName;
this.setState({ companies: newCompanies });
}

render() {
const { companies } = this.state;
return (
<ul>
{companies.map((item, index) => (
<input type="text" key={index} value={item} onChange={(e) => this.updateCompany(e.target.value, index)}></input>
))}
</ul>
);
}
}

关于javascript - 如何更新由 REACTJS 中的数组映射呈现的输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53765131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com