1 回答

TA貢獻1841條經驗 獲得超3個贊
this.label不存在,所以它是未定義的。要么 pass this.state.label,要么因為你正在解構對象,只是label. 只是一個小錯誤
render() {
const {label} = this.state
return (
<StyledInfoBox onClick={() => {this.props.selectBox(label)}}>
{label}
</StyledInfoBox>
)
}
您也不需要進行兩次解構。
2. 不,你必須將所有的 props 傳遞給每個組件。沒有理由你不能把盒子扔進一個循環中。您可以將標簽放在一個數組中并迭代傳遞所有內容?,F在您只需要實際編寫一次。
class ContainingBox extends React.Component {
const boxChosen =(label) => {}
const labels = ['Aenean malesuada lorem', 'Lorem Ipsum dor ameet'];
render() {
return (
<div>
{labels.map((ele, index) => {
<InfoBox
key={index}
blurb={{label: ele}}
selectBox={this.boxChosen}
/>
})}
</div>
)
}
}
其他人可能比我能更好地回答這個問題。除了給它們命名一些有意義的東西之外,沒有真正的約定。你是對的,你可以給它們命名不同的東西,因為它們只是不同范圍內的函數。他們沒有什么特別之處。你能說出他們同樣的事情,但你并不需要到。您可以做的最好的事情是將它們命名為“自我記錄”的東西,在它被定義的地方。
添加回答
舉報