小编abl*_*cz1的帖子

React 中的异步函数不会对状态变化做出反应

我希望我aysnc function对状态变化做出反应,以便它可以在状态变化时终止。我发现它对改变状态没有反应。

在提供的示例中,我正在从函数内部更改状态,但是我已经对其进行了测试并从函数外部更改了状态(单击按钮),但它也不起作用

const [testVariable, setTestVariable] = useState(false);

useEffect(()=> {
  testFunction();
}, [])

const testFunction = async () => {
  await timeout(1000);

  console.log("Setting test variable to: " + true);
  setTestVariable(true);

  await timeout(1000);
  
  console.log("Test variable is: " + testVariable);
}
Run Code Online (Sandbox Code Playgroud)

预期结果是看到变量更改为 true,但是我看到的是: 在此输入图像描述

javascript reactjs

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

如何使用 React Query 获取参数?

为了这个问题,我们首先假设存在这样的实体:

export interface Event {
    id: number;
    date: Date;
}
Run Code Online (Sandbox Code Playgroud)

然后我们假设有具有此类端点的后端:

GET /events -> returns all events
GET /events?startDate=dateA&endDate=dateB -> returns all events between dateA and dateB
Run Code Online (Sandbox Code Playgroud)

我在前端代码中创建了包含 4 个方法(每个 CRUD 操作一个)的钩子,如下所示:

export function useEvents() {
    const getEvents() = async () => {
        const response = await axios.get(`events`);
        return response.data;
    }
    const postEvent()...
    const updateEvent()...
    const deleteEvent()...

    const query = useQuery('events', getEvents);
    const postMutation = ...
    const updateMutation = ...
    const deleteMutation = ...

    return { query, postMutation, updateMutation, deleteMutation …
Run Code Online (Sandbox Code Playgroud)

reactjs react-query

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

VSCode - 骑手的 alt + Enter 等效项?

我正在寻找一个快捷方式,它将尝试自动导入未解析的类名(自动导入是指它将从列表中取出第一项,当我将鼠标悬停在它上面并按“快速修复”时出现)

我相信 Rider 在按 Alt + Enter 时会执行此操作。

visual-studio-code

5
推荐指数
1
解决办法
3381
查看次数

REACT + PHP - 仅在 POST 请求中阻止我的 CORS 策略

概述
我的React 应用程序托管在github-pages上,PHP API托管在标准付费托管上。

这有效(GET)
当我开始开发我的应用程序时,我遇到了一个非常流行的错误,即Access to fetch at ... has been blocked by CORS policy. 我找到了一个快速修复方法,将其写header("Access-Control-Allow-Origin: *")在 PHP 的第一行中,并且它有效。然而这些是GET 请求

这不起作用(POST)
这次我有一段代码,我必须在其中使用POST请求并需要访问它的响应。这是负责发送 post 请求的代码段:

const editEvent = async () => {
    const requestOptions = {
        method: 'POST',
        headers: { 'Content-Type': 'application/json', },
        body: JSON.stringify({ eventID: chosenEvent, courseID: courseID, groupID: groupID, time:time, date: date, description: description, typeID: typeID, password: password}),
        mode: 'cors',
    };
    const …
Run Code Online (Sandbox Code Playgroud)

javascript php reactjs fetch-api

3
推荐指数
1
解决办法
8618
查看次数

如何“包装” <Route> 组件以便它可以在 React 中的 <Router> 内部使用?

我创建的<RequireAuthRoute>它只是返回其子级或导航到/login. 然而它的使用方式并不令我满意。看看这个片段:

<Route
  path=''
  element={
    <RequireAuthRoute>
      <Explorer />
    </RequireAuthRoute>
  }
/>
Run Code Online (Sandbox Code Playgroud)

所以是的 - 从技术上讲它是有效的,但我想做的是为<Route>组件创建包装器,所以它最终看起来像这样:

<ProtectedRoute path='' element={<Explorer/>}/>
Run Code Online (Sandbox Code Playgroud)

阻碍我的是react-router它本身,它告诉我<Router>直接孩子只能是<Route>组件。有什么解决方法吗?

reactjs react-router

3
推荐指数
1
解决办法
5880
查看次数

如何强制 npm 不创建本地包的符号链接?

我下载了 npm 包的本地副本并将其解压到桌面上。然后我就用npm install /directory/它来安装了。

我注意到,当我删除桌面目录时,应用程序说它找不到已安装的模块。经过进一步调查后,我注意到该软件包已在其中node_modules,但旁边有箭头,并且显示“符号链接”,我认为这是指向该软件包的桌面目录的链接。

如何独立安装它,以便它完全包含在 node_modules 中,从而允许我删除桌面副本?

node.js npm npm-install npm-package

2
推荐指数
1
解决办法
3243
查看次数