[英]How to dynamically render array in React
我想動態渲染一個數組,其值會不斷變化。
我有一個父組件
const Parent = () => {
const arr = [];
<Button onClick={()=>{
arr.push("some value")
}}
<Child data={arr}/>
}
export class Child extends React.Component {
return(
<h1>
{this.props.data}
</h1>
)
}
因此,最初頁面將加載空白,只有一個按鈕。 我希望當單擊按鈕時還應該顯示 arr 值。 但是,我看到即使在將值添加到數組后也不會顯示任何值。
像這樣嘗試
const Parent = () => {
const [arr, setarr] = useState([]);
return (
<div>
<Button
onClick={() => {
setarr((oldArray) => [...oldArray, "some value"]);
}}
>
Button
</Button>
<Child data={arr} />
</div>
);
子組件
export class Child extends React.Component {
render() {
return <h1>{this.props.data}</h1>;
}
}
arr.push 不是 React 的方式。 有一種叫做狀態的東西,每次狀態改變時,組件都會重新渲染。 此外,如果您想顯示元素列表,則必須映射其值。
有關更多信息React Docs
嘗試這樣的事情(反應鈎子):
const Parent = () => {
const [data, setData] = useState([])
return (
<Button onClick={()=> setData([...data, "new value"])}
<Child data={data}/>
)
}
const Child = (props) => {
return (
<div>
<h1>Data</h1>
<div>
{props.data.map(item => <span>{item}</span>)}
</div>
</div>
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.