列表中的渲染按钮
Rendering button inside a list
如何在列表中呈现带有click事件的按钮?我不知道为什么我不能在列表中的每个狗旁边呈现一个按钮,并将该狗添加到我的购物车数组中。我知道我在这里错过了一些东西,因为每当我向onClick
事件添加一个函数时,我必须得到一个错误,因为我的整个接口消失了。假设我有一个组件:
var PetStore = React.createClass({
getInitalState: function() {
return ({
cart: []
})
},
addToCart: function(dog) {
this.setState({
cart: this.state.cart.concat([dog])
})
},
render: function() {
return (
<ul>
{this.props.dogs.map(function(dog){
return <li>Breed: {dog.breed}, age: {dog.age}
<button onClick={this.addToCart}>Buy</button></li>
})}
</ul>
)
}
})
var DOGS = [{
breed: 'Husky',
age: 5
}, {
breed: 'Pit bull',
age: 2
}, {
breed: 'Golden Retriever',
age: 10
}, {
breed: 'Black lab',
age: 2
}]
var PetStore = React.createClass({
propTypes: {
dogs: React.PropTypes.array
},
getInitialState: function() {
return ({
cart: []
})
},
addToCart: function(dog) {
this.setState({
cart: this.state.cart.concat([dog])
})
},
render: function() {
console.log(this.props);
var self = this;
return (
<ul>
{this.props.dogs.map(function(dog, index){
return (<li key={index}>Breed: {dog.breed}, age: {dog.age} <button onClick={self.addToCart.bind(self,dog)}>Buy</button></li>)
})}
</ul>
)
}
})
ReactDOM.render(<PetStore dogs={DOGS}/>, document.getElementById('test'));
相关文章:
- 客户端单选按钮列表验证
- 根据文本框中键入的文本筛选单选按钮列表
- 如何从按钮列表中获取按钮的 ID
- ASP.NET 显示单选按钮列表和下拉列表的进度条/加载
- 在JQM中制作垂直按钮列表
- 使用javascript循环浏览asp.net单选按钮列表以获取所选值和文本
- 如何更改已从单选按钮列表中选择的单选按钮的颜色
- 单击编辑按钮时,如何根据另外两个文本框的条件隐藏或禁用单选按钮列表和文本框
- 单选按钮列表列表 - 只允许选择一个
- 在文本框中键入字母的筛选器单选按钮列表
- 删除内容占位符中的单选按钮列表单选按钮
- 单选按钮列表选定值 JavaScript
- 用于清除/取消选择单选按钮列表中的项目的 Javascript
- 带有文本选项的单选按钮列表 蛋糕
- 读取单选按钮列表的值
- 防止在禁用单选按钮列表上调用 javascript 函数
- 硒显式等待,等到按钮列表可单击
- 按钮列表上的 onclick 事件在使用 JQuery 时不起作用
- 获取单选按钮列表中选中单选按钮的值
- 单选按钮列表与复选框