現在我的代碼中最愚蠢的事情正在發生。我有一個項目在DOM中呈現的列表,我需要把一個按鈕,以調用另一個功能,如果我把這樣的按鈕<button></button>
一切都很好,但如果我分配一個功能,該按鈕,然後一切都會下降<button onClick={function}></button>
我會告訴你我的代碼,看看如果我在`map`中的`onClick`中引用方法,爲什麼我的組件會中斷?
@connectToStores
export default class Dealers extends Component {
static contextTypes = {
router : React.PropTypes.func,
}
static propTypes = {
title : React.PropTypes.func,
}
constructor (props) {
super(props);
this.state = {
modal : false,
}
}
static getStores() {
return [ GetDealersStore ];
}
static getPropsFromStores() {
return GetDealersStore.getState();
}
render() {
let dealersInfo;
if (this.props.dealerData !== null) {
dealersInfo = this.props.dealerData.dealersData.map(function(dealer) {
return (<div key={dealer.DealerId} style={Styles.dealerCard}>
<Card>
<CardHeader title={dealer.NickName}
subtitle={dealer.DealerId}
avatar={dealer.Picture}/>
<CardText>
<FloatingActionButton> ////////////////////////
<IconAdd /> //////THIS IS THE BUTTON/////
</FloatingActionButton>//////////////////////
</CardText>
</Card>
</div>
);
});
} else {
dealersInfo = <p>Loading . . .</p>;
}
return (
<Grid>
<Row>
<Column><h4>Dealers</h4></Column>
</Row>
<div style={Styles.mainCont}>
{dealersInfo}
</div>
</Grid>
);
}
componentWillMount() {
GetDealersActions.getDealers();
}
_openUpdateDealer =() => {
console.log(123);
}
}
,你可以看到有一個說法
if (this.props.dealerData !== null) {
...
}else {
dealersInfo = <p>Loading . . .</p>;
}
我粘貼上面的代碼一切正常真棒,但如果我添加<FloatingActionButton onClick={this._openUpdateDealer.bind(this)}><IconAdd /></FloatingActionButton>
然後一切都下降,我在屏幕上看到的全部是Loading . . .
,這是陳述中的else
以上。
所以,我想知道,這裏的反應是怎麼回事?
你有沒有檢查瀏覽器控制檯中的錯誤?當您在DOM檢查器中查看按鈕元素時,它的外觀如何? – Pointy
@Pointy在控制檯中沒有錯誤。沒有附加到按鈕的功能,按鈕看起來很正常。但隨着附加的功能,我無法想象按鈕,只有'加載。 。 。 – NietzscheProgrammer
你使用什麼瀏覽器? – AllTheTime