小编brc*_*-dd的帖子

Next JS 在状态改变时不会重新渲染元素

我有一个代码,我可以在其中获取图像名称

const [foundImg, setFoundImg] = useState(false)
var imgNames = []
---
axios.get('http://someapi.com')
.then(res => {
  imgNames.push(res.data)
  setFoundImg(true)
}.catch(err => console.log(err)
Run Code Online (Sandbox Code Playgroud)

我把这个条件放在返回/渲染中

         { (foundImg === true) 
            ? itemImg.map( i => {
              return <div className="product--box">
                <Image width={50} height={50} src='/public/dummy.png' className='img'/>
              </div>
            })
            : null
          }
Run Code Online (Sandbox Code Playgroud)

但问题是,当获取图像名称时,组件不会重新渲染。所以现在还是空的。我怎样才能在获取返回数据时渲染该图像?

reactjs next.js

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

在 next.config.js 中同时添加对 next-css 和 next-less 的支持

我正在使用 nextJs 并且需要添加对 less 和 css 的支持。我想为一个项目同时使用 next-css 和 next-less。但它一次接受一个。这是我正在使用的

const withCSS = require('@zeit/next-css')
module.exports = withCSS({
  /* config options here */
})

const withLess = require('@zeit/next-less')
module.exports = withLess({
    cssModules: false,
    lessLoaderOptions: {
        javascriptEnabled: true
    }
})
Run Code Online (Sandbox Code Playgroud)

我是否正确地包括了两个装载机?我也需要 javascriptEnabled: true 。我们如何才能实现这种配置。

如果您能提供任何提示或两个提示,我将不胜感激。

javascript reactjs webpack next.js

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

如何在 Next Js 上使用 Sass 和 Css

我一直在尝试在 next.config.js 中使用 sass 和 css 模块,但不断遇到此错误:

Failed to compile.

./node_modules/@riskalyze/react-ui/node_modules/@riskalyze/calendar/assets/index.css
Unknown word (1:1)

> 1 | var api = require("!../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js");
    | ^
  2 |             var content = require("!!../../../../../../css-loader/index.js!./index.css");
  3 | 
  4 |             content = content.__esModule ? content.default : content;
Run Code Online (Sandbox Code Playgroud)

在 github 和 stackoverflow 上阅读之后,这听起来像是因为我的 next.config.js 中有两个 css 模块配置实例,但我不确定如何将其减少到一个,同时仍然保持此逻辑不变:

      config.module.rules.push({
        test: /\.css$/,
        use: [{ loader: 'style-loader' }, { loader: 'css-loader' }],
      });
Run Code Online (Sandbox Code Playgroud)

下面是我完整的 next.config.js

const path = require('path');
const withSass = require('@zeit/next-sass');
const withCSS = require('@zeit/next-css');

const aliasPathsToResolve = [ …
Run Code Online (Sandbox Code Playgroud)

css sass css-loader next.js

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

Nextjs SSG 1000 万条记录

我有下一个 js 应用程序,我有一个返回 1000 万个帖子的 API,我想知道我使用 SSG 方法来做到这一点是否标准?另外我可以随时添加帖子。

javascript reactjs next.js

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

Next.js刷新页面后出现404错误

我尝试学习 Next.js 但遇到了一个小问题。这是我的测试代码:

import Link from 'next/link';
export default () => (
    <p>Hallo next <Link href="/abouts?id=2" as='/abouts/1'><a>About</a></Link></p>
)
Run Code Online (Sandbox Code Playgroud)

如果我在 index.js 页面中单击“关于”链接,我的 url 看起来'/about/1/'并工作正常,但如果我刷新页面,则会收到错误 404。如果我在浏览器中输入/abouts?id=2"并刷新页面,则一切正常。你知道我该如何解决这个问题吗?我想要有像这样的链接

/about/1/
Run Code Online (Sandbox Code Playgroud)

routes reactjs next.js

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

使用 webpack 配置运行 Jest 测试

我正在使用next-optimized-imagespackage 来优化 next.js 项目中的图像。

这是一个配置,应该使我能够加载图像并使用 URL 参数自动调整它们的大小,例如?sizes[]=300

什么有效

next.config.js

const withOptimizedImages = require("next-optimized-images");

module.exports = withOptimizedImages({
  optimizeImagesInDev: true,
  module: {
    rules: [
      {
        test: /\.(jpe?g|png)$/i,
        loader: "responsive-loader",
        options: {
          adapter: require("responsive-loader/sharp"),
        },
      },
    ],
  },
});
Run Code Online (Sandbox Code Playgroud)

我也在使用pngjpg优化库:

"imagemin-mozjpeg": "^8.0.0","imagemin-optipng": "^6.0.0"

我的 JSON/JS 文件的图像结构如下:

{
  ...,
  imgs: [
    require("../../static/img/foo/bar.jpg?sizes[]=200,sizes[]=300"),
    ...,
  ]
}
Run Code Online (Sandbox Code Playgroud)

这样,当使用它时responsive-loader,所有内容都会按其应有的方式加载,即图像的路径将替换为应用程序中包含两个不同大小的路径的对象。

什么不起作用

然而,不起作用的是require在每个图像数组元素中引入声明之前曾经起作用的测试(玩笑测试)。它只是说它无法导入所需的模块,因为很可能它不使用使用参数解析这些路径的 webpack 配置。我如何告诉它这样做?

错误信息:

Cannot find module '../../static/img/foo/bar.jpg?sizes[]=200,sizes[]=300' from 'categories.js'

我不能简单地使用图像的路径,然后在标签require中使用它们<img …

reactjs webpack jestjs babeljs next.js

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

Next js - 使用动态 URL 重新加载

我用和创建了动态页面Next jsRedux

我有一个关于我的网络使用的简单流程

  1. 登入

  2. 重定向到index.html使用next/router.

  3. 单击一个<Link href="/DYNAMIC_PAGE"/>.

  4. 进入/DYNAMIC_PAGE页面。

每个步骤都运行良好,但在 step3 和 step4 之间存在一些问题。

当我点击并<Link />标记到 时/DYNAMIC_PAGE,它会被重新加载。

它会影响我的 Redux状态。

我想避免在进入DYNAMIC_PAGES重新加载

如果您需要更多详细信息,请留下评论。

先感谢您。

页数/[id].tsx

import * as React from "react";
import { NextPage } from "next";
import Layout from "components/Layout";
import Content from "components/courses/Content";
import axios from "axios";

const ExamplePage: NextPage = (props: any) => {
  return (
    <Layout title="About | Next.js …
Run Code Online (Sandbox Code Playgroud)

next.js

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

无法将 Leaflet 与 NextJS 一起使用

我想用Leaflet我想与 NextJS(typescript) 一起

但Leaflet不支持SSR。所以,我用react-leaflet-univarsal.

然后,我自定义了Leaflet的Marker组件。所以,我想用Leaflet.Icon. 我尝试了两件事。

  1. if(process.browser){}

这是没有找到的window

  1. 使用动态导入next/dynamic
let iconPerson: any;
  const DynamicComponent = dynamic(
    () =>
      import('leaflet').then(L => {
        iconPerson = (L as any).Icon.extend({
          options: {
            iconUrl: '/images/icon1.jpg',
            iconRetinaUrl: '/images/icon1.jpg',
            iconSize: new (L as any).Point(60, 75),
            className: 'leaflet-div-icon',
          },
        });
      }) as any,
    { ssr: false },
  );

....

<Marker icon={iconPerson}>

Run Code Online (Sandbox Code Playgroud)

这是打印出来的。> 无法读取未定义的属性“createIcon”

L.icon是和NextJS一起使用的方式吗?

leaflet typescript reactjs next.js

0
推荐指数
1
解决办法
3420
查看次数

React - 下一篇博客:浏览器上显示空行

我正在编写一个从 Mongo Atlas 获取数据的博客,该页面位于 Vercel 上托管的 Nextjs 9.5.4 中。博客页面使用静态道具和再生

数据以 JSON 的形式出现,所有内容都被字符串化。

 return {
      props: {
        articles: JSON.parse(JSON.stringify(articles)),
      },
Run Code Online (Sandbox Code Playgroud)

博客文章 = 文章都有标题、文本和签名行(作者和日期) 有些文章有链接,有些文章有一两张图片。相关部分代码如下:`

{articles.map((article) => (
      <li key={article.id}>
      <h2  className={styles.blogtitle} >{article.title}</h2>
      <p  className={styles.blogtext}>{article.text}</p>
      <img src={article.image1} className={styles.blogimage} alt={article.alt1} ></img>
      <img src={article.image2} className={styles.blogimage} alt={article.alt2} ></img>
      <p>{""}
      <a
       href={article.link} 
      title={article.link}
      target="_blank"
      rel="noopener noreferrer" >
      {article.link}            
      </a>
      </p>
      <p  className={styles.bloginfos}>{article.author}, le {article.date.slice(0,10)} à {article.date.slice(11,16)} h</p>
      </li>
    ))}
Run Code Online (Sandbox Code Playgroud)

当我添加图片和链接时,所有没有图片或链接的帖子都显示为 2 张图片和 1 个链接的空行。浏览器检查器显示每个列表条目都有一个 <img class="nextGeneratedName1"> <img class="nextGeneratedName1">
空标签和 ap 标签,其中包含

<a target="_blank" rel="noopener noreferrer"></a>
Run Code Online (Sandbox Code Playgroud)

(至少它并没有真正在新标签中添加一个空链接) …

html css class reactjs next.js

0
推荐指数
1
解决办法
42
查看次数