【问题标题】:How to Remove Board from Redux store-React js, redux如何从 Redux store 中删除 Board-React js,redux
【发布时间】:2018-06-09 17:44:27
【问题描述】:

在这里我通过单击按钮创建新版块,一旦我进入版块页面,我就可以选择创建新的小部件

如果用户没有创建新的小部件并单击返回板按钮,则不应创建板

这里板子正在创建中,我无需保存就可以看到板子,

如果我刷新页面看不到。

如果单击返回板按钮,我能否获得一些关于如何防止创建板的建议

点击返回板下面的函数将被调用

回到董事会

manageShowBoard = (selectedBoard) => {
this.setState({ selectedBoard });
};

【问题讨论】:

    标签: reactjs redux


    【解决方案1】:

    首先,您必须将selectedStoryboard 作为动作的有效负载传递,然后简单地:

    case types.REMOVE_STORYBOARD:
    {
      const boardToRemove = ... // get from action payload
      return {
         ...state,
        boardList: state.boardList.filter(board => board !== boardToRemove);
      };
    }
    

    【讨论】:

    • 点击返回看板??
    • @JMR 我告诉你怎么做。你必须决定什么时候。这就是你的应用逻辑。
    • 好的,谢谢你的建议
    【解决方案2】:

    简单的方法可以在您的新 Board 组件中(您在其中创建小部件),您可以保持小部件的数量。当用户单击后退按钮时,您可以检查小部件计数。 如果您的小部件计数大于 0,那么您可以将该板添加到 Parent 组件中,您可以在其中维护所有板数据。

    家长:

    class Parent {
      constructor(props){
        super(props);
        this.boardsList = [];
      }
    
      updateBoards = (newBoard) => {
        this.boardsList.push(newBoard);
        this.setState({renderAgain: true});
      }
    
      render(){
        return <Board updateBoards={this.updateBoards} />;
      }
    
    }
    

    董事会:

    class Board {
    
      onClickBackButton = () => {
        if(widgetsCount > 0){
          this.props.updateBoards(boardData);
        }
        else {
          ...normal back button functionality...
        }
      }
    
    }
    

    【讨论】:

    • if(!currentWidgetList || !currentWidgetList.length) 但如果我点击返回,我仍然可以看到板
    • 那我觉得你的显示功能不对。它应该是boardsList数组的map函数,根据上面的代码,boardsList只有在新板子的widgetsList大于零时才会更新。所以不会出现零小部件的新板。
    • 当我点击创建按钮板时,如果我刚回来需要从 redux 商店中删除板,无论小部件如何
    • 如果小部件的长度为 0,那么 redux 商店将拥有我的板
    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2018-12-03
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多