小编Ven*_*son的帖子

Date-fns 格式距离用词不正确

我遇到了用户界面的问题,想要显示时间戳距离3 hours ago4 hours ago。来自服务器的时间戳具有名为的属性createdAt,该属性具有以下值。

createdAt: "2021-10-27T05:24:37.642Z"
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我使用像date-fns v2.25.0内置函数formatDistance这样的库。

import { formatDistance} from 'date-fns';

const timestamp = createdAt ? new Date(createdAt) : '';
console.log(formatDistance(Date.now(), timestamp, {addSuffix: true}));
    
Run Code Online (Sandbox Code Playgroud)

但它在下面的话中回馈了距离

in about 3 hours
in about 4 hours
Run Code Online (Sandbox Code Playgroud)

代替

3 hours ago
4 hours ago
Run Code Online (Sandbox Code Playgroud)

我做错了什么?如果您知道其他好的图书馆,请分享。

javascript date-fns

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

useEffect 如何比较以前和更新的道具

我正在将基于类的Heading组件转换为功能组件,但该组件使用 3 个生命周期钩子componentDidMountcomponentWillUnmountcomponentDidUpdate

我更换了componentDidMountcomponentWillUnmount但是如何更换componentDidUpdate?它正在将更新prop值与旧prop值进行比较。

代码沙箱链接。

应用程序组件:

import React, { Component } from "react";
import { Heading } from "./components/Heading";
import { HeadingHook } from "./components/HeadingHook";

export class App extends Component {
  state = {
    flag: false,
    mountUnmount: true
  };

  toggleChangeFlag = () => {
    if (this.state.mountUnmount) {
      this.setState({
        flag: !this.state.flag
      });
    }
  };

  toggleMountUnmount = () => {
    this.setState({
      flag: false,
      mountUnmount: …
Run Code Online (Sandbox Code Playgroud)

reactjs

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

当页面路由改变时加载指示器不显示

我正在使用Next.js并创建了 3 个页面。

  • 索引.js
  • 类别/index.js
  • 类别/[slug].js

每当用户转到新页面时,我都想给用户一些关注。为此,我添加了库名称NProgress,它在视口顶部显示了一条加载线。NProgress 的逻辑写在pages/_app.js文件里面。

_app.js:

import React from 'react';
import Router from 'next/router';
import NProgress from 'nprogress';

NProgress.configure({
  speed: 800,
  showSpinner: false,
});

Router.events.on('routeChangeStart', () => {
  NProgress.start();
});
Router.events.on('routeChangeComplete', () => NProgress.done());
Router.events.on('routeChangeError', () => NProgress.done());


function MyApp({ Component, pageProps }) {
  return <Component {...pageProps} />
}

export default MyApp;
Run Code Online (Sandbox Code Playgroud)

每当我更改路线并转到categories页面时,加载线都可以正常工作。

但是当我通过单击categories重定向到categories/[slug].js页面的任何更改路由时。加载线显示几秒钟,然后隐藏。

你可以看到。

Next.js 加载指示器

有没有办法解决这个问题?

pages/index.js

import React from 'react';
import Link from …
Run Code Online (Sandbox Code Playgroud)

reactjs next.js

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

通过电子邮件链接打开本地环境页面

我被困在这个问题上。后端 API 已写入Node.js,我正在React.js. 后端和前端代码具有独立的存储库结构。因此,所有登录、注册和忘记密码功能都将通过客户端请求完成。

API 端点部署在具有以下 URL 结构的服务器上。

POST - https://133.44.163.89:5000/user/forgetPassword
GET -  https://133.44.163.89:5000/user/56546dsfsd
Run Code Online (Sandbox Code Playgroud)

现在,我在具有以下 URL 的前端本地环境中使用这些端点。

http://localhost:3000
Run Code Online (Sandbox Code Playgroud)

我面临忘记密码端点的问题,基本上它是一个发布请求,并在正文中获取用户电子邮件。

POST - https://133.44.163.89:5000/user/forgetPassword
body: { email: 'example@example.com' }
Run Code Online (Sandbox Code Playgroud)

成功回复后,它将发送一封带有链接的电子邮件。该链接具有以下结构。

https://133.44.163.89:5000/user/56546dsfsd/forgetPassword/ddeef95c508
                                user-id                    token
Run Code Online (Sandbox Code Playgroud)

后端开发人员希望我提供的是,当您单击此 URL 时,应在前端打开一个带有密码重置表单的页面。但是链接HOST不同,我如何将此链接HOSThttps://133.44.163.89:5000)映射到前端HOST(http://localhost:3000)以打开页面。

这个问题的解决方案应该是什么?

node.js reactjs react-router-dom

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

MongoDB 通过 Id 数组删除嵌入文档

我正在开发一个Node.js使用MongooseMongoDB数据库的应用程序。我一直被困在这件事上,没有提出正确的查询。

问题:

有一个名为的集合,其中包含作为对象数组的chats嵌入文档。(rooms)我想删除数组中的(rooms)这些嵌入文档。Ids

  {
    "_id": "ObjectId(6138e2b55c175846ec1e38c5)",
    "type": "bot",
    "rooms": [
      {
        "_id": "ObjectId(6138e2b55c145846ec1e38c5)",
        "genre": "action"
      },
      {
        "_id": "ObjectId(6138e2b545c145846ec1e38c5)",
        "genre": "adventure"
      }
    ]
  },
  {
    "_id": "ObjectId(6138e2b55c1765846ec1e38c5)",
    "type": "person",
    "rooms": [
      {
        "_id": "ObjectId(6138e2565c145846ec1e38c5)",
        "genre": "food"
      },
      {
        "_id": "ObjectId(6138e2b5645c145846ec1e38c5)",
        "genre": "sport"
      }
    ]
  },
  {
    "_id": "ObjectId(6138e2b55c1765846ec1e38c5)",
    "type": "duo",
    "rooms": [
      {
        "_id": "ObjectId(6138e21c145846ec1e38c5)",
        "genre": "travel"
      },
      {
        "_id": "ObjectId(6138e35645c145846ec1e38c5)",
        "genre": "news"
      }
    ]
  }
Run Code Online (Sandbox Code Playgroud)

我正在将我的数组转换ids …

mongoose mongodb

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

Java:右键单击"复制剪切粘贴在TextField上"

我制作了一个在文本字段中打印值的程序.问题是当用户右键单击文本字段时,这样的菜单将无法打开:

在此输入图像描述

用户可以通过右键单击打开此菜单吗?

这是我的代码:

public class A extends JFrame{
private JTextField txt1;
private JTextField txt2;
private JLabel val;
private JLabel prt;
private JButton bt1;


    public A() {

    getContentPane().setLayout(null);

    txt1 = new JTextField();
    txt1.setBounds(178, 93, 87, 28);
    getContentPane().add(txt1);


    txt2 = new JTextField();
    txt2.setBounds(178, 148, 87, 28);
    getContentPane().add(txt2);


    val = new JLabel("Enter Value");
    val.setBounds(84, 93, 69, 28);
    getContentPane().add(val);

    prt = new JLabel("Printed Value");
    prt.setBounds(80, 148, 87, 28);
    getContentPane().add(prt);



    bt1 = new JButton("Click This");
    bt1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

        int n=Integer.parseInt(txt1.getText()); …
Run Code Online (Sandbox Code Playgroud)

java swing

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

Java是否创建了默认构造函数?

当我们有一个这样的类没有任何构造函数时:

public class F {
    public void sum() {
        System.out.println("print it");
    }
Run Code Online (Sandbox Code Playgroud)

main方法如何创建此类的对象?对象是否已经有构造函数?

    public static void main(String[] args) {
        F obj = new F();
        obj.sum();
    }
}
Run Code Online (Sandbox Code Playgroud)

Java是否有像这样的默认构造函数:

public class F() {
}
Run Code Online (Sandbox Code Playgroud)

java constructor default-constructor

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