Redux-将ownProps参数传递给选择器

Redux-将ownProps参数传递给选择器,redux,react-redux,reselect,Redux,React Redux,Reselect,我无法将变量ownProps从mapstatetops传递给选择器。我的选择器: export const nameSelector = createSelector( [ state => state.element.get('name') ], (name) => !name.trim() ); const mapStateToProps = (state, ownProps) => ({ disabledAfterSave

我无法将变量
ownProps
mapstatetops
传递给选择器。我的选择器:

export const nameSelector = createSelector(
    [
        state => state.element.get('name')
    ],
    (name) => !name.trim()
);

const mapStateToProps = (state, ownProps) => ({
    disabledAfterSave: nameSelector(state)
});
export const nameSelector = createSelector(
        [
            state => state.element.get('name')
        ],
        (name, ownProps) => !name.trim() && ownProps.showMessage
    );

const mapStateToProps = (state, ownProps) => ({
    disabledAfterSave: nameSelector(state, ownProps)
});
我需要一个选择器:

export const nameSelector = createSelector(
    [
        state => state.element.get('name')
    ],
    (name) => !name.trim()
);

const mapStateToProps = (state, ownProps) => ({
    disabledAfterSave: nameSelector(state)
});
export const nameSelector = createSelector(
        [
            state => state.element.get('name')
        ],
        (name, ownProps) => !name.trim() && ownProps.showMessage
    );

const mapStateToProps = (state, ownProps) => ({
    disabledAfterSave: nameSelector(state, ownProps)
});
但现在我得到一个错误:
ReferenceError:ownProps未定义

当我试图通过它时,如下所示:

export const nameSelector = (ownProps) => createSelector(
        [
            state => state.element.get('name')
        ],
        (name) => !name.trim() && ownProps.showMessage
    );
返回的类型不是bool,而是
[函数选择器]

如何将此参数传递给选择器?

以下是修复选择器及其用法的方法:

export const nameSelector = createSelector(
  [
    state => state.element.get('name'),
    (state, ownProps) => ownProps.showMessage
  ],
  (name, showMessage) => !name.trim() && ownProps.showMessage
)

const mapStateToProps = (state, ownProps) => ({
  disabledAfterSave: nameSelector(state, ownProps)
})

下面是一个通用的工作示例,以说明如何将道具传递给选择器:

export const nameSelector = createSelector(
  [
    state => state.element.get('name'),
    (state, ownProps) => ownProps.showMessage
  ],
  (name, showMessage) => !name.trim() && ownProps.showMessage
)

const mapStateToProps = (state, ownProps) => ({
  disabledAfterSave: nameSelector(state, ownProps)
})
const createSelector=Reselect.createSelector
//选择器:获取活动用户
const getUsers=createSelector([state=>state.users],users=>users.filter(u=>u.active))
//选择器:按国家/地区获取活动用户
//在这里,你可以查看我如何通过国家道具
const getUsersByCountry=createSelector([getUsers,(state,props)=>props.country],
(用户,国家)=>users.filter(u=>u.country==country))
//国家
常量状态={
用户:[
{id:1,名称:'Jordan',国家:'保加利亚',活动:true},
{id:2,名称:'Nadezhda',国家:'保加利亚',活动:true},
{id:3,名称:'Hristo',国家:'保加利亚',活动:false},
{id:4,名字:'Bobby',国家:'England',活动:true},
{id:5,名称:'Kaloyan',国家:'Germany',活动:true},
]
}
//测试
console.log(getUsers(state))
log(getUsersByCountry(state,{country:'保加利亚'}))