恢复操作后获取更新状态

杰森·梅纳德

我正在尝试使用redux操作在更改后使用当前状态更新数据库。

例如 removeStock被调用并将库存状态从[“ A”,“ B”,“ C”]更改为[“ A”,“ C”]

在此之后,我立即调用updateWatchlist将新状态发送到数据库。问题是,尽管页面上显示了正确的数据,但mapStateToProps没有更新,并且正在将原始数据发送到服务器。

行动

///update
export const updateWatchlist = (payload, selected) => async (dispatch: Function, getState) => {
    const response = await axios
        .put(`${API_URL}/api/editWatchlist/${selected}`, {body: payload}, tokenConfig(getState))
}

///Delete
export const removeStock = (payload) => ({
    type: DELETE_STOCK,
    payload,
});

零件

const Security = ({index, name, stocks, selected}) => {
    const dispatch = useDispatch();
    const [taskName, setTaskName] =useState(name)

    const removeTask = (e) => {
        e.stopPropagation()
        dispatch(removeStock(index))
        dispatch(updateWatchlist(stocks, selected))
    }    

    return (
        <Row className="list-group-item">
            <div className="item-titles">
                {name}
            </div>
            <button onClick={(e) => removeTask(e)} className="remove-item">
                <i className="glyphicon glyphicon-remove"></i>
            </button>
        </Row>
    );

}

const mapStateToProps = (state) => {
    return {
        stocks: state.Watchlist.stock.watchlist,
    }
}
Nghi Nguyen

因为您的removeTask调用堆栈保留了stocks变量的原始值,而updateWatchlist的2个参数仍然引用该值。在redux中的状态更改后,只需重新渲染组件并更改存储

    const removeTask = (e) => {
        //// stocks not changed after dispatch(removeStock(index))
        /// it just changed when component rerender 
        e.stopPropagation()
        dispatch(removeStock(index))
        dispatch(updateWatchlist(stocks, selected))
    } 

我的建议是您可以使用useEffect观察库存变化,然后更新您的watchList:

useEffect(()=>{
   dispatch(updateWatchlist(stocks, selected))
},[stocks])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在“删除后”挂钩中获取数据库操作的状态

来自分类Dev

如何使显示删除和其他操作的滑块在点击后恢复正常状态

来自分类Dev

从 SharedPreferences 获取数据后状态变量未更新

来自分类Dev

更新Redux状态,然后在同一实例中获取更新后的状态

来自分类Dev

方向改变后片段恢复状态

来自分类Dev

引导后立即恢复小部件状态

来自分类Dev

引导后立即恢复小部件状态

来自分类Dev

绘制后如何恢复QPainter的状态

来自分类Dev

从休眠状态恢复后,LTS暂停16.04

来自分类Dev

单击NSAttributedString后恢复其视觉状态

来自分类Dev

Gitlab在恢复后不返回初始状态

来自分类Dev

失败后make如何恢复状态

来自分类Dev

SwiftUI更新导航操作状态

来自分类Dev

恢复异步方法后值未更新

来自分类Dev

PHPMyAdmin更新后恢复数据

来自分类Dev

片段恢复后,AsyncTask不更新UI

来自分类Dev

更新后恢复 MySQL /var/lib/mysql

来自分类Dev

从后台恢复后 MvxRecyclerView 不更新

来自分类Dev

插入查询后更新状态

来自分类Dev

反应:状态更改后获取初始状态

来自分类Dev

CheckBox在取消选中后恢复为选中状态

来自分类Dev

使用react hooks提交失败后恢复表单提交状态

来自分类Dev

从待机状态恢复后,铬会冻结(Kubuntu 14.04)

来自分类Dev

转换后,CSS Cube恢复到其初始状态

来自分类Dev

从休眠状态恢复后重新启动Network Manager的脚本

来自分类Dev

从休眠状态恢复后,Networkmanager不知道我在线

来自分类Dev

从待机状态恢复后,HDMI上的声音慢2倍

来自分类Dev

断开连接后,在状态dsInsert中恢复TADOQuery

来自分类Dev

故障转移和恢复后的copySet db状态

Related 相关文章

热门标签

归档