【问题标题】: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;
}

希望对你有帮助:)

【讨论】:

  • 仍然没有显示弹出窗口
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多