【问题标题】:how to show pop up in react , getting error on button click?如何在反应中显示弹出窗口,单击按钮时出错?
【发布时间】:2018-03-05 11:16:12
【问题描述】:
你能告诉我如何在反应中显示弹出窗口,点击按钮时出错?
点击按钮时出现错误
Actions may not have an undefined "type" property. Have you misspelled a constant?
这是我的代码
https://codesandbox.io/embed/6y402kly73
showSignInPopUp = () => {
console.log(this.props.actions)
this.props.actions.showHideLoginPopup(true);
};
【问题讨论】:
标签:
reactjs
redux
react-router
react-redux
【解决方案1】:
您必须在操作对象中提供键名type。
// wrong object key name
export function showHideLoginPopup(visibility){
return {
action: types.SHOW_HIDE_LOGIN_POPUP,
payload: visibility
}
}
你应该这样写
export function showHideLoginPopup(visibility){
return {
type: types.SHOW_HIDE_LOGIN_POPUP,
payload: visibility
}
}
希望对你有帮助
【讨论】:
-
-
@naveen 那是因为你的动作类型没有在reducer中正确处理......它应该是SHOW_HIDE_LOGIN_POPUP而不是SHOW_LOGIN_POPUP。检查 login.reducer.js (检查这里codesandbox.io/s/l91r41092z)
【解决方案2】:
您的 loginActions 没有必需的参数 type。改成这样
return {
type: types.SHOW_HIDE_LOGIN_POPUP,
payload: visibility
}
您的 login.reducer 中有另一个错误,
switch (action.type) {
case types.SHOW_LOGIN_POPUP: // Change to SHOW_HIDE_LOGIN_POPUP
state = action.payload;
return state;
default:
return state;
}
希望对你有帮助:)