如何在连接函数中使用映射道具 - redux?

时间:2017-06-14 07:37:48

标签: reactjs redux react-redux

我想在deleteListSettingsCustomSubjectLine函数中使用我的映射listId。我以为我可以使用ownProps但它返回undefined。有人能解释一下应该怎么做吗?

@connect(state => {
    return {
        listId: state.views.ListSettings.listSettings.listId,
    }
}, (dispatch, ownProps) {
     return {
         onCustomSubjectLineDelete: () => {
         const {listId} = ownProps; //undefined
         dispatch(actions
                    .deleteListSettingsCustomSubjectLine(listId));
         }
     }
})

1 个答案:

答案 0 :(得分:0)

我建议将listId属性作为参数传递给onCustomSubjectLineDelete并将其称为onCustomSubjectLineDelete(listId);

然后定义是:

onCustomSubjectLineDelete(listId) {
    dispatch(actions.deleteListSettingsCustomSubjectLine(listId);
}

OLD,答案不好:

这是一个简化的例子(仅使用mapStateToProps的第一个参数)。映射到道具就是这样,您可以通过this.props属性访问映射的属性。

@connect(state => {
     return {
         listId: state.views.ListSettings.listSettings.listId,
     }
})
class Example extends React.Component {
    render() {
       const { listId } = this.props;
       return (
          <div>{listId}</div>
       );
    }
}

我建议你看看at the Redux usage with React documentation