子组件:
export default class Button extends React.Component {
constructor(props) {
super(props);
}
render() {
return(
<div className="form-group">
<button
// Need to add dynamic html attr here e.x: data-id
key={index}
id={id}
className={`btn btn-default ${componentClass ? componentClass : null }`}
type="button"
onClick={this.props.onClick}>
{text}
</button>
</div>
);}}
父组件:
import Button from './Button';
Class App extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div className="s">
<Button data-id="exampleData" /> // Need to add data-id attr to child button
</div>
);
}
按钮组件,具有自己的默认属性,如上所述:id、className、type、onClick。
父组件会调用按钮组件并添加一些额外的属性,如data-id、onChange。
注:经过搜索了解到,我可以使用以下方式来使用扩展运算符:
父组件:
let dynamicAttributes = {"data-id":"someString", "data-attr":"someString", "data-url":"someString"};
return (
<div className="s">
<Button dataSrc={ btnSrc } {...dynamicAttributes} />
</div>
);
我不知道如何将Button组件中的dynamicAttributes称为html属性。
期待一个好的解决方案。提前感谢。
使用解构和Babel时出现错误(意外标记),如下图所示。
注意:已经安装了preset-env和preset-react。