【发布时间】:2021-09-02 05:39:10
【问题描述】:
这是一个小的功能组件。列表在输入中呈现。尝试更改密钥,但它起作用了。我在反映输入文本更改时遇到问题。
import { useState } from "react";
import "./styles.css";
export default function App() {
const [list, setList] = useState([
{ id: 1, text: "abc" },
{ id: 1, text: "zxy" }
]);
const setText = (e, id) => {
setList((old) => {
old[id].text = e.target.value;
console.log(old)
return old;
});
};
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Edit to see some magic happen!</h2>
{list.map((li, index) => (
<input
key={index}
value={li.text}
onChange={(e) => setText(e, index)}
/>
))}
</div>
);
}
const { useState } = React;
function App() {
const [list, setList] = useState([
{ id: 1, text: "abc" },
{ id: 1, text: "zxy" }
]);
const setText = (e, id) => {
setList((old) => {
old[id].text = e.target.value;
console.log(old)
return old;
});
};
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Edit to see some magic happen!</h2>
{list.map((li, index) => (
<input
key={index}
value={li.text}
onChange={(e) => setText(e, index)}
/>
))}
</div>
);
}
ReactDOM.render(<App />, document.querySelector("#app-container"));
<script src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
<div id="app-container"></div>
【问题讨论】:
标签: javascript arrays reactjs react-hooks frontend