小编Rya*_* Le的帖子

使用对象解构删除属性,不会出现 eslint no-unused-vars 错误

考虑以下代码,我x使用解构创建了一个“副本”,并删除了其中一个属性:

const x = { a: 1, b: 2, c: 3};
const { a, ...x2} = x;
console.log(x);
console.log(x2);
Run Code Online (Sandbox Code Playgroud)

如果我这样做,@typescript-eslint/no-unused-vars会认为这是一个未使用的错误a

如何更改代码来修复错误,而不明确要求 eslint 忽略有问题的行,最好仍然使用解构语法?即我真的不想使用delete,也不想显式枚举所有其他属性,例如const x2 = {b: x.b, c: x.c }.

是否有一种奇特的语法或奇怪的 eslint 规则可以鱼与熊掌兼得?

javascript destructuring unused-variables typescript eslint

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

停止“useMutation”重新渲染组件并忽略结果

我有一个像这样的突变(这不是实际的突变调用,而是一个最小的例子):

const App = () => {
  const [myMutation] = useMutation(gql`
    mutation Test($updateUserId: ID!, $updateUserInput: UpdateUserInput!) {
      updateUser(id: $updateUserId, input: $updateUserInput) {
        id
        firstname
        age
      }
    }
  `);

  // Runs every time this component is rendered
  console.log("rendered");

  // Called when the button is clicked
  const update = () => {
    myMutation({
      variables: {
        updateUserId: 1,
        updateUserInput: {
          age: Math.round(Math.random() * 10 + 5) // Set a random age from 5 - 15
        }
      }
    });
  };

  return (
    <>
      <h1>Update …
Run Code Online (Sandbox Code Playgroud)

apollo reactjs apollo-client

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

createPortal - 当 JavaScript 运行正常时,TypeScript document.getElementById 类型问题?

我正在尝试使用 ReactDOM.createPortal,但 VSCode 中没有突出显示“ReactDOM”或“文档”,当将鼠标悬停在“document.getElementById('overlay-root')”上时,我收到此错误:

Argument of type 'HTMLElement | null' is not assignable to parameter of type 'Element'.
  Type 'null' is not assignable to type 'Element'.
Run Code Online (Sandbox Code Playgroud)

这是代码:

import styles from './CartModal.module.css';
import ReactDOM from 'react-dom';
import Card from '../UI/Card/Card';

interface CartModalProps {
  onClose?: () => void
}

const DisplayCartModal: React.FC<CartModalProps> = (props) => {

  return ReactDOM.createPortal(
    <>
      <CartModal />
    </>, 
    document.getElementById('overlay-root')
  )
}

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

我尝试将文件扩展名切换为 .js 以查看这是否是 TypeScript 错误,事实上,当我更改它(并删除了 TS 特定语法)时,所有内容都突出显示并且运行良好。它没有返回 null,而是返回了正确的 HTML 元素。非常感谢帮助!

javascript typescript reactjs

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

在react-markdown中添加多个换行符

目前,我正在使用 React,并且在 Strapi CMS 中的富文本中包含内容,这些内容在 Markdown 版本中按照我想要的方式间隔开,但是一旦我切换到预览或在浏览器中查看内容,空格就会消失离开。我尝试过添加<br/>标签,但仍然没有换行符。

\n

这是我的 Strapi Markdown 中的内容:\n![图片|690x273, 50%](上传://jy7Rsdurp6rq6VNB0ki4Jnc9L24.png)

\n

但这是我网页上的输出:\n![图片|690x128, 50%](上传://b4cGhjj4uOjO6uCCpXcggetnqNO.png)

\n

这是我当前的代码:

\n
import ReactMarkdown from "react-markdown";\nimport rehypeRaw from "rehype-raw";\nexport\xc2\xa0default\xc2\xa0function\xc2\xa0name({\xc2\xa0posts })\xc2\xa0{\n\xc2\xa0\xc2\xa0return\xc2\xa0(\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<div>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0{posts.Title}\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</div>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<div>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<ReactMarkdown\xc2\xa0children={posts.Content}\xc2\xa0rehypePlugins={[rehypeRaw]}\xc2\xa0/>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</div>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</>\n\xc2\xa0\xc2\xa0);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

reactjs strapi react-markdown

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

在数组 javascript 中的每个 json 对象中添加新字段

我正在开发一个 React 应用程序,我从一个基本上是 JSON 对象列表的路由中获取 JSON 响应。

现在我想根据该 JSON 对象中的另一个字段在每个 JSON 对象中添加一个字段:

这是我的回应:

{
  messages: [
    {
      msgId: "2021082111010755885",
      interfaceId: 5,
      status: "QUEUED",
      createdAt: "2021-08-21 11:01:07.89554",
      modifiedAt: "2021-08-21 11:01:07.89554",
      count: 0,
    },
    {
      msgId: "2021082012204615964",
      interfaceId: 5,
      status: "QUEUED",
      createdAt: "2021-08-20 12:20:46.187297",
      modifiedAt: "2021-08-20 12:31:06.622",
      count: 5,
    },
    {
      msgId: "2021082012204575430",
      interfaceId: 5,
      status: "QUEUED",
      createdAt: "2021-08-20 12:20:46.187297",
      modifiedAt: "2021-08-20 12:27:06.473",
      count: 3,
    },
    {
      msgId: "2021082012204613152",
      interfaceId: 5,
      status: "QUEUED",
      createdAt: "2021-08-20 12:20:46.187297",
      modifiedAt: "2021-08-20 12:28:06.517",
      count: 3,
    }, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays json reactjs

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

当我在reactjs中有9个div时,我的.length方法返回0

const boxes = {
  height: 220,
  width: 220,
  backgroundColor: 'red',
  borderRadius: '25%',
};
const main = {
  display: 'grid',
  gridTemplateColumns: 'auto auto auto',
  gridGap: '20px',
  justifyContent: 'center',
  marginTop: '20px',
};

const box = document.querySelectorAll('.boxes');
console.log(box.length);

class Easy extends React.Component {
  render() {
    return (
      <div className="easy-game">
        <div className="Easy-main" style={main}>
          <div style={boxes} className="boxes" />
          <div style={boxes} className="boxes" />
          <div style={boxes} className="boxes" />
        </div>
      </div>
    );
  }
}

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

这是我的代码,我的 .length 方法返回 0,而有 3 个 div 使用我在 React 中开始的同一个类,所以我可能在某个地方出错

reactjs react-dom

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