小编Dil*_*ing的帖子

如何将数字用户 ID 与 next-auth 一起使用

我最近发现并开始测试create-t3-app作为 NextJS 项目的新基础,因为它负责 TypeScript、trpc、prisma 和 next-auth 等的大量样板设置,因此它会为我节省大量时间时间。虽然这是相关的,但我不认为这是我的问题的根源。我的问题是,我使用带有自动递增用户 ID 的 MySQL 数据库,但包的类型似乎next-auth迫使我使用字符串(DefaultUserinnext-auth/core/types.d.tsAdapterUserinnext-auth/adapters.d.ts都将 id 类型设置为字符串,并且注释说 UUID)。考虑到我可以扩展支持数字用户 ID 的功能,我将其添加到next-auth.d.ts

import { DefaultSession, DefaultUser } from 'next-auth'

declare module 'next-auth' {
  interface User extends DefaultUser {
    id: number;
  }
  interface Session {
    user?: {
      id: number;
    } & DefaultSession['user'];
  }
}
Run Code Online (Sandbox Code Playgroud)

这似乎在大多数地方都有效,除了[...nextauth].ts给我这个错误的地方

输入“字符串|” number” 不可分配给类型“number”。类型“string”不可分配给类型“number”。ts(2322)

就在session.user.id = user.id这一段代码中

export const authOptions: NextAuthOptions = {
  // Include …
Run Code Online (Sandbox Code Playgroud)

typescript next.js next-auth

9
推荐指数
1
解决办法
1545
查看次数

你可以修改 NextJS 挂载元素或向 __next div 添加类吗?

长话短说,我正在做一个项目,我想让内容“填充”静态标题下方的垂直空间。我在 React 中使用顺风完成了这样的操作:

<body class="flex flex-col h-screen text-gray-600 work-sans leading-normal text-base tracking-normal">
    <header class="flex h-18 bg-white shadow-md">
        {/* header menu options */}
    </header>
    <div class="flex flex-1 h-full bg-gray-200 p-6">
        {/* page content */}
    </div>
Run Code Online (Sandbox Code Playgroud)

但是对于 NextJS,它似乎将安装 div(即<div id="__next">)放在正文和内容的 wrest 之间。如果我修改 CSS 以提供#__next { height: %100 }但使填充无法正常工作,它会溢出。所以它看起来像这样:

<body class="flex flex-col h-screen text-gray-600 work-sans leading-normal text-base tracking-normal">
    <div id="__next">
        <header class="flex h-18 bg-white shadow-md">
            {/* header menu options */}
        </header>
        <div class="flex flex-1 h-full bg-gray-200 p-6">
            {/* page …
Run Code Online (Sandbox Code Playgroud)

javascript css jsx next.js tailwind-css

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

如何使用react-router-dom在'x'秒后“重定向到”

我是 React Js 的初学者。我想在 2 秒后重定向到路径“/event”。

这种方法不起作用:

import React from 'react';
import { getFormData } from '../../../helpers/form';
import { eventCreate } from '../../../actions/EventActions';
import { Redirect } from 'react-router-dom';
import { connect } from 'react-redux';

if (event) {
  setTimeout(() => {
    return <Redirect to={'/event'} />;
  }, 2000);
}
Run Code Online (Sandbox Code Playgroud)

但如果我把它改成:

if (event) {
  return <Redirect to={'/event'} />;
}
Run Code Online (Sandbox Code Playgroud)

它工作完美。2秒后如何重定向?

reactjs

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

标签 统计

next.js ×2

css ×1

javascript ×1

jsx ×1

next-auth ×1

reactjs ×1

tailwind-css ×1

typescript ×1