小编Mar*_*cin的帖子

为什么 renderToString 在渲染 Material-UI 组件时会抛出有关 useLayoutEffect 的错误?

我正在使用 React v.16.12.0 和 @MaterialUI/core v4.8.1。

我正在尝试为 React Leaflet Marker 创建自定义图标。该图标是FabMaterial-UI 中的一个组件。为此,我需要将 HTML 字符串传递给L.DivIcon (DivIcon Docs) Leaflet 组件,因此我renderToString()使用react-dom/server.

它抛出一个错误:

警告:useLayoutEffect 在服务器上不执行任何操作,因为它的效果无法编码为服务器渲染器的输出格式。这将导致初始的、非水合的 UI 与预期的 UI 之间不匹配。为了避免这种情况,useLayoutEffect 应该只在专门在客户端渲染的组件中使用。在NoSsr中 在ForwardRef(ButtonBase)中 在WithStyles(ForwardRef(ButtonBase))中 在ForwardRef(Fab)中 在WithStyles(ForwardRef(Fab))中 (at src/index.js:9)

虽然我没有使用 useLayoutEffect。

这是一个简单的例子:

import React from "react";
import ReactDOM from "react-dom";
import ReactDOMServer from 'react-dom/server';
import Fab from '@material-ui/core/Fab';

function App() {
  return ReactDOMServer.renderToString(
    <Fab size="small" variant="extended">
      Test
    </Fab>);
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Run Code Online (Sandbox Code Playgroud)

在线: https: //codesandbox.io/s/material-ui-rendertostring-tc90b

为什么会抛出这个错误?这段代码有什么问题?是否有其他方法可以从 …

javascript reactjs material-ui react-leaflet

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

用于import.io的url的Xpath

我在这个网站上获得了提供的工作列表:http://telekom.jobs/global-careers

我正在尝试获取XPath链接以获取有关工作的更多信息.

这是第一个链接的整个XPath:

/html/body/div[3]/div/div[2]/div[3]/table/tbody/tr[2]/td/div/a/@href
Run Code Online (Sandbox Code Playgroud)

这就是我应该粘贴到import.io:

tr[2]/td/div/a/@href
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我不知道为什么.

有关工作机会页面的更多信息的链接正在使用XPath:

tr[2]/td/div/a/@href
tr[4]/td/div/a/@href
tr[6]/td/div/a/@href
tr[8]/td/div/a/@href
Run Code Online (Sandbox Code Playgroud)

等等.也许这就是为什么它不起作用?因为数字不是1,2,3等而是2,4,6?或者我做错了什么?

xpath web-crawler import.io

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