小编Kru*_*own的帖子

动态设置元数据而无需重复请求 - NextJS 13

考虑以下服务器端组件,它是应用程序目录中某个页面 (page.js) 的一部分,代表一个人:

export default async function Person({ params }) {
    const person = await getPerson(params.id);
    
    return (
        <h1> {person.name} </h1>
        <p> {person.bio} </p>
    )
}
Run Code Online (Sandbox Code Playgroud)

显然,这里的目的是动态呈现新页面,其想法是 URL 看起来像/person/{id},其中 ID 是每个人的唯一 ID。

我遇到的问题是我需要为页面设置元数据。例如,我希望标题为person.name,描述为person.description。根据我所读到的内容,在 NextJS 13 中使用 app 目录执行此操作的唯一方法是使用generateMetadata,它看起来像这样:

export async function generateMetadata({ params }) {
    const person = await getPerson(params.id);

    return {
        title: person.name,
        description: person.description
    }
}
Run Code Online (Sandbox Code Playgroud)

我相信您现在可以看到这个问题:我需要getPerson在同一页面中发出完全相同的请求 ( ) 两次。据我所知,没有办法在generateMetadata页面组件之间传递数据。

<Head>组件next/head似乎是理想的解决方案,但它似乎不适用于 NextJS …

node.js reactjs next.js nextjs-dynamic-routing next.js13

15
推荐指数
1
解决办法
3223
查看次数

Eclipse 自动完成功能不起作用...仅适用于 AWT?

标题几乎解释了这一点。

自动完成功能在 Eclipse 中不起作用,但仅当我在与 java.awt 相关的对象上使用它时才起作用。出现了从 Object 重写的方法,但仅此而已。

这是一个例子

它发生在每个项目中,而不是特定的一个项目中。我尝试过重新安装 Eclipse,但没有成功。任何帮助表示赞赏。

java eclipse awt

12
推荐指数
1
解决办法
1534
查看次数

启动/停止服务器时 MySQL Workbench 冻结

我最近开始使用MySQL Server和Workbench(均为8.0版本),并注意到一个奇怪的问题:当我加载Workbench时,进入服务器->启动/关闭并单击“停止服务器”,MySQL将冻结。这是一张图片: 在此输入图像描述

当我按“停止服务器”时,它首先给我一个窗口提示,允许其进行更改,然后如您所见,它冻结并变灰。如果服务器关闭并且我按启动服务器,也会发生同样的情况。

我已经卸载并重新安装了与 MySQL 相关的所有内容,从程序文件和程序数据中清除了 MySQL,但运气为零。然而,服务器确实从组件服务中打开/关闭,因此我的临时解决方案是编写一个写得不好的 powershell 脚本来关闭和打开它。

如果有人知道为什么它无法在工作台中打开的解决方案,请告诉我。

mysql sql workbench

6
推荐指数
1
解决办法
5874
查看次数

为什么 pthread_join 不接受线程指针?

非常不言自明的问题。例如,pthread_create 的标头显示它需要一个指向线程的指针:

int WINPTHREAD_API pthread_create(pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *), void *arg);
Run Code Online (Sandbox Code Playgroud)

好的,有道理,您在内存中分配一个 pthread,然后传递一个指向 pthread_create 的指针,以便它被初始化......但现在查看 pthread_join 的标头:

int WINPTHREAD_API pthread_join(pthread_t t, void **res);
Run Code Online (Sandbox Code Playgroud)

它需要 pthread_t 的副本。我只是不明白为什么它不使用指向已经存在的线程的指针,而不是复制它并传递它;似乎这样做会导致更多问题和更多内存使用。我错过了什么吗?我阅读了联机帮助页,它似乎没有提供这样做的原因。

c c++ linux pthreads

6
推荐指数
1
解决办法
471
查看次数

React + keycloak-js:访问主页时#error=login_required循环

我在基本 React 应用程序中使用 keycloak-js 和 @react-keycloak/web 执行身份验证时遇到一些问题。我的代码如下所示:

索引.js:

import React from 'react';
import ReactDOM from 'react-dom/client';
import { ReactKeycloakProvider } from "@react-keycloak/web";
import App from './App';
import Keycloak from "keycloak-js";

import { Routes, Route, BrowserRouter } from 'react-router-dom';

let keycloak = new Keycloak({
    url: "http://localhost:8081/",
    realm: "realm",
    clientId: "realm-public",
    loadUserProfileAtStartup: false
});

keycloak.init({
    redirectUri: "http://localhost:3000/home",
    pkceMethod: "S256"
});

const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(
    <ReactKeycloakProvider authClient={keycloak}>
        <React.StrictMode>
            <BrowserRouter>
                <Routes>
                    <Route path="/" element={<App keycloak={keycloak}/>} />
                </Routes>
            </BrowserRouter>
       </React.StrictMode>
    </ReactKeycloakProvider>
);
Run Code Online (Sandbox Code Playgroud)

应用程序.js:

function …
Run Code Online (Sandbox Code Playgroud)

reactjs keycloak

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