现在,最愚蠢的事情发生在我的代码上。我有一个项目列表呈现在DOM中,我需要把一个按钮,以调用另一个函数,如果我把按钮这样<button></button>
一切正常,但如果我分配一个功能到该按钮,然后一切都下来<button onClick={function}></button>
我会告诉你我的代码,看
@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
在上面的语句。
所以,我想知道,这里发生了什么反应?
您正在.map
操作中间渲染按钮:
this.props.dealerData.dealersData.map(function(dealer) {
它使用不同的值this
; 因此,this.props
在函数内部不存在。我希望能cannot read property dealerData of undefined
在浏览器控制台中看到。
您需要使用可选thisArg
参数:
this.props.dealerData.dealersData.map(function(dealer) {
// ...
}, this);
将映射功能this
手动绑定:
this.props.dealerData.dealersData.map(function(dealer) {
// ...
}.bind(this));
或使用箭头功能(因为您正在使用ES6功能):
this.props.dealerData.dealersData.map((dealer) => {
// ...
});
问题内容: 我有一个已创建的组件: 当我打开此页面时,我的中的每个页面都会被调用。如果我喜欢: 我还可以使用匿名函数: 然后它会按预期工作。为什么会这样? 问题答案: 您需要传递对函数的 引用 ,当您这样做时调用函数并传递给从返回的值。您可以使用以下三个选项之一: 1 。使用 2 。使用箭头功能 3 。或从返回函数
我不明白这一点: 没有这个,我可以做到: 为什么在第一种情况下我不能调用hello()方法,而在第二种情况下我可以调用?
问题内容: 我有这个web.xml 突出显示,IDE给出的错误是:“发现无效的内容,从element开始… 我还需要做什么? 问题答案: 使用以下表示法: 但我建议阅读此链接。本教程将使您了解在JSP 2.0的情况下如何避免在web.xml中声明标签库。
我正在尝试创建包含某些值的表的Excel文件。问题是,无论我做什么,Java都会创建损坏的Excel文件(.xlsx、.xlsm)。 更改现有表的列文件的名称已损坏,如果不进行修复,则无法打开它。名称已更改,但由于某些原因,必须修复该文件。创建新表或为现有表创建新列似乎会损坏文件,但我不知道为什么。 这是我的全部代码: 附言:我是Java初学者——我在Java上有三年的Rest时间。我为我的语言道
问题内容: 我正在尝试在hadoop 2.2.0上运行我的PDFWordCount映射减少程序,但出现此错误: 它说我的地图类未知。我在3个VM上有一个带有namenod和2个datanodes的集群。 我的主要功能是: 如果我使用以下命令运行jar: 正如我在上面看到的那样,它作为输出路径并给我错误,而我的主要功能却在运行。 我已经运行了一个简单的WordCount项目,该项目的主要功能与该主要
这是我第一次问问题,如果这看起来很奇怪,很抱歉。这是我的完整代码。和星星分开的线就是断裂的线。