【发布时间】:2019-06-22 17:18:55
【问题描述】:
我必须通过迭代对象来生成选项卡。
父类是TabsList,子类是TabsListItems。数据作为道具从父母流向孩子。现在在子类中有一个 <li> 元素(这是 baisclly 选项卡)。
OnClick 其中的 selectTab 方法应该被调用,该方法在 actiotn.js 中
但是我的matchDispatchToProps(dispatch ) 方法在父级中。
如何调用绑定在父类中的方法?
我将一个对象作为道具传递给子类
父组件
import React from 'react';
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import {selectTab} from '../actions/index';
import PlanTabsList from './PlanTabsList';
class TabList extends React.Component {
constructor(props){
super(props);
}
createTabItems(){
return this.props.tabList.map((item, i) => {
return (
<PlanTabsList key={i} tabList={item} />
)
});
}
render() {
return (
<div id="layout-header" className="layout-header">
<div id="header" className="header">
<ul className="tabs tabs--horizontal">
{this.createTabItems()}
</ul>
</div>
</div>
);
}
};
function mapStateToProps(state){
return {
tabList: state.tabList,
activeTab: state.activeTab
}
}
function matchDispatchToProps(dispatch){
return bindActionCreators({selectTab: selectTab}, dispatch);
}
export default connect(mapStateToProps, matchDispatchToProps)(TabList);
子组件
import React from 'react';
class TabsListItems extends React.Component {
constructor(props){
super(props);
console.log(this.props.tabList)
}
render() {
return (
<li onClick={() => this.props.selectTab(this.props.tabList)}
role="presentation" className={"tab " }>
<a href="#">
<div className="tab__label">
<div className="tab__label__value">{this.props.tabList.name}</div>
</div>
</a>
</li>
);
}
};
export default TabsListItems;
【问题讨论】:
标签: reactjs react-redux