以下代码显示警报消息,因为规则在map()函数中绑定.我不希望这种情况发生.相反,如何绑定onClick()到每个链接,以便当用户单击链接时,消息将显示?我认为这与放置bind(this)在map()代码中的某个地方有关,但无法弄明白.谢谢你的帮助!
const RuleResults = React.createClass({
showMessage: function (rule) {
if (rule.ShowMessageToUser == true) {
alert(rule.MessageToUser);
}
},
render: function () {
var rules = this.props.businessRules.map((rule) => {
return (
<tr>
<td>
<a href={rule.HREF} onClick={this.showMessage(rule)} target='_blank'>{rule.Name}</a>
</td>
</tr>
);
});
return (
<div>
<table>
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
{rules}
</tbody>
</table>
</div>
);
}
});
Run Code Online (Sandbox Code Playgroud) 一个例子:
function doSomething(): { string, SomeClass } {
...
}
Run Code Online (Sandbox Code Playgroud)
从使用编译器开始,似乎它将接受任何返回值,该返回值是具有任意数量的string键和SomeClass值的对象.
所以像这样:
{
"key1": someClass1,
"key2": someClass2,
...
}
Run Code Online (Sandbox Code Playgroud)
我的理解是否正确?
--Update--
似乎我需要的注释是 { [key: string]: SomeClass }