小编Ras*_*mon的帖子

解决在同一个应用程序中拥有多个 React 副本的问题

我正在本地开发一个 React 模块。为此,我正在使用npm link. 模块已成功导入,但模块内部的挂钩失败。它抛出以下错误:

无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一而发生的: 1. 你可能有不匹配的 React 版本和渲染器(例如 React DOM) 2. 你可能违反了 Hooks 规则 3. 你可能有多个 React 副本同一个应用程序 请参阅https://reactjs.org/link/invalid-hook-call以获取有关如何调试和解决此问题的提示。

检查React docs 中的建议,我可以确认我的应用程序正在使用 React 的重复版本,因为以下代码返回 false:

// node_modules/mymodule/src/index.js
export { default as ReactFromModule } from 'react'
Run Code Online (Sandbox Code Playgroud)
// src/index.js
import React from 'react'
import { ReactFromModule } from 'mymodule'
console.log(React === ReactFromModule) //false
Run Code Online (Sandbox Code Playgroud)

这个问题充满了建议,但它们令人困惑。我该如何解决?

注意:我没有违反钩子规则,错误仅在从应用程序导入模块时出现。

javascript npm reactjs webpack package.json

7
推荐指数
3
解决办法
4512
查看次数

如何在 redux-toolkit 中输入 updateQueryData

我已经在 redux-toolkit 中成功实现了乐观更新。但我无法正确输入。我的代码类似于 redux-toolkit 的示例。

const postsApiSlice = api.injectEndpoints({
  endpoints: (builder) => ({
    getPost: builder.query<Post, number>({
      query: (id) => ROUTES.POST(id),
      providesTags: (result, error, id) => {
        return [{ type: POST_TAG, id }]
      },
    }),
    updatePostWithOptimism: builder.mutation<void, Pick<Post, 'id'> & Partial<Post>>({
      query: ({ id, ...patch }) => ({
        url: ROUTES.POST(id),
        method: 'PATCH',
        body: patch,
      }),
      async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {
        // ERROR at 'getPost': Argument of type 'string' is not assignable to parameter of type 'never'.ts(2345) …
Run Code Online (Sandbox Code Playgroud)

typescript redux-toolkit

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

获取Linux服务器中文件夹的大小

虽然以下代码在 Windows 中运行良好,但在 Linux 服务器(pythonanywhere)中,该函数仅返回 0,没有错误。我错过了什么?

import os

def folder_size(path):
    total = 0
    for entry in os.scandir(path):
        if entry.is_file():
            total += entry.stat().st_size
        elif entry.is_dir():
            total += folder_size(entry.path)
    return total

print(folder_size("/media"))
Run Code Online (Sandbox Code Playgroud)

参考:来自/sf/answers/2615757581/ 的代码

python linux django

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

如何在 redux-toolkit 中输入“prepare”函数

我正在使用 redux-toolkitprepare函数来构造最终的有效负载值。

    addTodo: {
      reducer: (state, action) => {
        state.push(action.payload);
      },
      // ERROR: **Type '{ payload: Todo; }' is missing the following properties from type 'Omit<PayloadAction<any, string, any, any>, "type">': meta, errorts**
      prepare: (todoMessage: string): { payload: Todo } => {
        return {
          payload: { message: todoMessage, id: uuid(), completed: false }
        };
      }
    },
Run Code Online (Sandbox Code Playgroud)

如何键入prepare函数来消除打字稿错误?

检查这里的错误。

javascript typescript redux redux-actions redux-toolkit

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

使用 redux-toolkit 的端点“启动”功能时强制重新获取的任何方法

我在用:

dispatch(api.endpoints.getPosts.initiate(undefined))
Run Code Online (Sandbox Code Playgroud)

但我在 redux 中收到以下错误:

name:"ConditionError"
message:"Aborted due to condition callback returning false."
Run Code Online (Sandbox Code Playgroud)

我在这个问题上找到了这个错误的含义:

这意味着 asyncThunk 由于条件而未执行。如果您使用 RTK 查询,这仅意味着跳过了另一个请求,因为已经有一个请求正在运行或缓存中已经有一个值,因此不需要发出任何请求。这是 RTK-Query 用于跟踪组件订阅的内部拒绝,而不是错误。

但是有没有办法强制重新获取呢?

javascript react-redux redux-toolkit rtk-query

4
推荐指数
1
解决办法
2950
查看次数

带有反对 JS 的内部联接查询?

我得到以下数据模型:https : //imgur.com/a/AwwpW9F

基本上, AUser可以属于 many Projects,而 aProject可以有 many Users,我通过一个名为的连接表将它们捆绑在一起UserProjects

使用原始 SQL 查询,我可以去

SELECT "user".email, project.name FROM "user"
JOIN userprojects ON userprojects.user_id = "user".id
JOIN project ON project.id = userprojects.project_id
Run Code Online (Sandbox Code Playgroud)

这给了我

email(On User table)               name(On Project table)
first@email.com                    Project X
first@email.com                    Project Y
second@email                       Project Y
Run Code Online (Sandbox Code Playgroud)

我将如何使用 Objection ORM 构建此查询?也许我可以直接做一个原始查询?就像是

User.query().raw(SELECT "user".email, project.name FROM "user"
JOIN userprojects ON userprojects.user_id = "user".id
JOIN project ON project.id = userprojects.project_id)
Run Code Online (Sandbox Code Playgroud)

?

javascript postgresql node.js objection.js

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

如何在 Objection.js 中创建两个外键关系

有没有办法在 Objection.js 中创建两个外键关系。类似于以下内容:

  static get relationMappings() {
    return {
      childs: {
        relation: Model.HasManyRelation,
        modelClass: childModel,
        join: {
          from: 'parent.id',
          to: 'child.parent_id'
        },
        join: { // Another foreign key
          from: 'parent.record_id',
          to: 'child.parent_record_id'
        }
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

javascript node.js objection.js

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

配置 i18next 以使用警告日志而不是默认信息级别

目前我有很多日志使得i18next控制台难以使用:

在此输入图像描述

我需要i18next使用警告级别而不是默认信息级别,以便能够过滤它们。

我正在检查文档,但我没有看到任何选项。我当前的配置是:

i18n
  .use(XHR)
  .use(LanguageDetector)
  .init({
    debug: true,
    lng: 'en',
    keySeparator: false,
    addMissing: true,
    interpolation: {
      escapeValue: false
    },

    resources: {
      en: {
        translations: translationEng
    },
    ns: ['translations'],
    defaultNS: 'translations'
  })
Run Code Online (Sandbox Code Playgroud)

javascript i18next reactjs

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

节点 events.js:174 throw er; // 未处理的“错误”事件

请求 API 时出现错误,并且在任何 Win 服务器上崩溃。请问有人可以帮忙吗?

这是我的代码的一部分:

app.get("/js/2806/api/products/getAllDrugs", (req, res) => {


    const connection = getDBConnection()

    const queryString = "SELECT * FROM tbl_drug";

    connection.query(queryString, (err, rows, fields) => {

        if (err) {
            console.log("Failed to query for drugs: " + err);
            // res.sendStatus(500);
            res.json({
                ErrorDetail: {
                    code: -1,
                    msg: err.code
                }
            });
            res.end();
            return
        }

        const drugs = rows.map((row) => {
            return {
                id: row.id,
                storeId: row.drugStoreId,
                drugName: row.drugName,
                description: row.drugDsc,
                drugUsing: row.drugUsing,
                drugDoseId: row.drugDoseId,
                categoryId: row.categoryId
            };
        })

        res.json({
            ErrorDetail: { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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