[英]JSX component doesn't render map of state
當用戶在點擊時選擇他們最喜歡的鏈接時,我正在嘗試列出一個列表...
知道為什么這不起作用嗎? 它會將值推送到 console.log 中的 state.array 但 JSX 不會在 ul.li 中呈現
import React, { Component } from "react";
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
link: {
name: "",
type: "",
size: "",
tests: []
},
tests: ["1", "2", "3", "4"]
};
}
componentDidMount() {
console.log(this.state);
}
onClick = e => {
const linktests = this.state.link.tests;
console.log("clicked");
linktests.push(e.target.innerText);
console.log("link tests : " + linktests);
};
render() {
const { link, tests } = this.state;
const linktests = this.state.link.tests;
return (
<div>
<div id="link">
{linktests.map(stuff => (
<ul>
<li> {stuff} </li>
</ul>
))}
</div>
<br></br>
{tests.map(stuff => (
<ul>
<li onClick={this.onClick} value={stuff}>
{stuff}
</li>
</ul>
))}
</div>
);
}
}
希望有人可以幫助:D <3 謝謝
您需要將新鏈接設置為狀態。 還可以在原始狀態數組上使用concat
或slice
以避免直接對其進行變異。
onClick = e => {
const linktests = this.state.link.tests.concat();
console.log("clicked");
linktests.push(e.target.innerText);
this.setState({link: { ...this.state.link, tests: linktests});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.