我正在为一个freeCodeCamp挑战构建一个react/redux鼓式机器应用程序,我已经完成了按钮和连接,以便onClick将一个带有url链接的动作作为一个属性发送到声音,但我不知道我需要创建什么作为还原器来完成我想要的工作。
您可以查看我在这里得到的内容:https://codesandbox.io/s/k29r3928z7,您可以忽略顶部的Hello/告别开关的部分,因为这只是让我了解React/Redux的启动流程。我的主要问题是,在这种情况下,我应该对国家做些什么?按下按钮不会真正改变状态,所以我不确定在创建减速器的“新状态”步骤中应该做什么。
发布于 2018-07-16 00:12:11
我不熟悉freeCodeCamp挑战的具体目标,但是如果您希望应用程序在用户单击显示的任何按钮时播放正确的声音,您可以通过更新drumClickHit操作来实现这一点,如下所示:
export const drumClickHit = url => {
  //Create an audio object from the url provided to the action
  const sound = new Audio(url);
  //Play the audio object immediatly
  sound.play();
  return {
    type: "CLICKHIT",
    url
  };
};为了说明行为创建者和还原剂之间的关系,您可以通过将以下"CLICKHIT“案例添加到您的减速器中,从而获得与上面相同的结果:
case "CLICKHIT": {
  //Create an audio object from the url provided to the action. 
  //Get the url from the action
  const sound = new Audio(action.url);
  //Play the audio object immediatly
  sound.play();
  return state;
}然而,在你的应用程序中,音频回放的逻辑更好地放在操作中,而不是还原器。
https://stackoverflow.com/questions/51352949
复制相似问题