小编Nyi*_*ung的帖子

当数据库中的数据发生变化时更新我的​​反应状态的最佳方法是什么?

我正在使用 React 开发一个项目,当新数据插入我的数据库时,我需要使用 React hook 更新反应状态。我正在使用 contextAPI,但就我而言,我的组件的结构方式我无法使用从数据库返回的数据来更新该状态。这是我的代码的更多细节:

我有一个组件,其中数据与 useState 一起存在

const [questions, setQuestions] = useState([]);

  useEffect(() => {
    (async () => {
      const resp = await axios.get(
        `${process.env.REACT_APP_BACKEND_URL}/product/${productId}/question`
      );
      setQuestions(resp.data);
    })();
  }, []);
Run Code Online (Sandbox Code Playgroud)

我还有另一个名为 PostQuestion 的组件,它将发布请求发送到我的后端并将新问题插入到我的数据库中。他们完全不知道彼此的存在。我们可以使用 contextAPI 将 props 传递给子级和嵌套子级。但 PostQuestion 组件不是所有问题数据都存在的组件的子组件。这就是我对 contextAPI 的理解。但它们都是另一个组件的子代。但我不想把我的

 const [questions, setQuestions] = useState([]);
Run Code Online (Sandbox Code Playgroud)

在该组件中,该组件是这两个组件的父组件。我可以做什么来更新 PostQuestion 组件中的问题状态?

这是我的 PostQuestion 组件代码


const postQuestionHandler = async (e) => {
    e.preventDefault();

    try {
      const resp = await axios({
        url: `${process.env.REACT_APP_BACKEND_URL}/product/${productId}/question`,
        method: "POST",
        data: {
          question: questionInput.question.value,
          userId,
        }, …
Run Code Online (Sandbox Code Playgroud)

state-management reactjs react-redux react-context react-hooks

7
推荐指数
1
解决办法
1万
查看次数