我正在本地开发一个 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)
这个问题充满了建议,但它们令人困惑。我该如何解决?
注意:我没有违反钩子规则,错误仅在从应用程序导入模块时出现。
我已经在 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) 虽然以下代码在 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/ 的代码
我正在使用 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函数来消除打字稿错误?
检查这里的错误。
我在用:
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 用于跟踪组件订阅的内部拒绝,而不是错误。
但是有没有办法强制重新获取呢?
我得到以下数据模型: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)
?
有没有办法在 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) 目前我有很多日志使得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) 请求 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 ×7
node.js ×3
objection.js ×2
reactjs ×2
typescript ×2
django ×1
i18next ×1
linux ×1
npm ×1
package.json ×1
postgresql ×1
python ×1
react-redux ×1
redux ×1
rtk-query ×1
webpack ×1