在子级中调用useState钩子-状态数据为空

时间:2020-09-23 08:55:45

标签: reactjs react-functional-component

我正在尝试使用我的(相当简单的)React应用解决问题-到目前为止,我可以通过在需要的地方将数据整齐地传递给组件来避免将Redux用于全局状态管理。

但是,我遇到了一个主要问题:我有一些使用道具显示/隐藏的组件。在父级,我使用useState钩子这样:

const [localOrders, setLocalOrders] = useState([]);

我进行HTTP调用,然后使用setLocalOrders并传递订单数据(然后将其映射/显示在页面和子组件上)。但是,我还有一个访问localOrders的本地函数:

handleClose: (clearOrder) => {
  setProcessOrderModal({
    ...processOrderModal,
    redacted
  });
  if (clearOrder !== null) {
    setLocalOrders(_.filter(localOrders, ({ order }) => (order.id !== clearOrder)));
  }
},

在子组件中调用此代码时,localOrders为空(设置为[])。我无法弄清楚如何访问仍然清楚地保存数据的实际状态数据(localOrders)(例如页面上的订单列表仍然可见)。

1 个答案:

答案 0 :(得分:0)

尝试一下

handleClose: (clearOrder) => {

 if (clearOrder) {
    setLocalOrders(state=> _.filter(state, ({ order }) => (order.id !== clearOrder)));
 
 }

  setProcessOrderModal(state => ({
    ...state,
    redacted
  });
  
 }
},