像这样的工作:
//Child
var SingleButton = React.createClass({
render: function() {
let { selectedTransport, type, text, handleClick } = this.props;
let selected = selectedTransport[type];
var style = selected ? { "backgroundColor":"yellow" } : {
"backgroundColor":""
};
return (
<button style={style} onClick={handleClick} name={type}>
{text}
</button>
)
}
});
//Parent
var Categories = React.createClass({
getInitialState: function() {
return {
selectedTransport: {
car: false,
train: false,
plane: false
}
}
},
handleClick: function(event) {
console.log('CLICK');
let { selectedTransport } = this.state;
selectedTransport[event.target.name] = true;
this.setState({ selectedTransport });
console.log('TRANSPORT', this.state.selectedTransport);
},
render: function() {
console.log('RENDERING', this.state);
var transportType = ['car', 'train', 'plane'];
return (
<div>
{transportType.map((type, idx) => (
<SingleButton
{...this.state}
text={type}
handleClick={this.handleClick}
key={idx}
type={type}
/>
))
</div>
);
}
});
ReactDOM.render(<Categories />, document.getElementById('app'));
工程就像一个魅力。谢谢。 – Anita