为什么在这种情况下我的上下文未定义?

时间:2020-11-03 12:24:48

标签: reactjs

我正在使用上下文来获取列表并分发函数以对此列表进行DELETE和PUT,然后再次获取新的,更新的列表。除此之外,我还有一个常规函数来检查列表中是否存在某些元素。上下文可以在常规功能组件中完美运行。我已经在整个应用程序中添加了提供程序,所以这不是问题。

我的问题是: 当我想将使用此上下文的按钮添加到提取数据后生成的数组中时,该上下文是未定义的。我想知道如何才能“等待”上下文的定义或确保它是正确的。或任何其他可能有助于解决问题的解决方案。

这里有一些代码可以使您了解更多:

// AdvancedDropdown.js
const fetchSomeData = () => {
  ...
  setData(convertDataToCorrectSetUpForMyComponent(data));
}

const convertDataToCorrectSetUpForMyComponent = data =>
  data.map(d => ({
    ...,
    content: <CustomContentThatContainsUseContext d={d} />
  }));

// CustomContentThatContainsUseContext.js
const { deleteFunction, ... } = myCustomContext();

return <Button onClick={deleteFunction}>Delete from list</Button>;

我确实认为问题出在.map中,因为您不能在此类函数中使用Hooks或Context?我认为当其中有一个具有挂钩/上下文的组件,而不是直接自带挂钩/上下文的组件时,这不会有问题。 我需要将数据从REST服务转换为正确的数据结构,以使应放入AdvancedDropdown的数据

预先:谢谢您的帮助!

0 个答案:

没有答案