问题标签 [react-dom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
23 回答
451292 浏览

reactjs - React - 在 DOM 渲染时显示加载屏幕?

这是来自 Google Adsense 应用程序页面的示例。在主页显示之后显示的加载屏幕。

在此处输入图像描述

我不知道如何用 React 做同样的事情,因为如果我让 React 组件渲染加载屏幕,它不会在页面加载时显示,因为它必须等待之前渲染的 DOM。

更新

我通过将屏幕加载程序放入index.html并在 ReactcomponentDidMount()生命周期方法中将其删除来举例说明我的方法。

示例react-loading-screen

0 投票
1 回答
3330 浏览

reactjs - 为什么我无法从 ReactDOM.render() 回调中获取对我的组件的引用?

我有以下代码:

我需要priceCalculator稍后在我的代码中使用,但 ESLint 抱怨我不应该使用ReactDOM.render(). 那时我发现您可以将第三个参数传递ReactDOM.render()回调。太好了,我想...

但是priceCalculator是未定义的。在调试器中,我暂停异常并发现this当我在这个函数中时它被设置为我的 React 组件。所以我重写它...

它仍然未定义。这是怎么回事?

我正在使用 Webpack 编译 es6 React 代码(使用 babel)。

0 投票
2 回答
151 浏览

jquery-ui - React 组件不更新

我在我的应用程序中使用 React 和 Redux。当我拖动相同类型的问题时,我有一个动态表单,我的组件位置没有更新。对于拖动我正在使用JqueryUI Sortable

我的问题对象:

反应组件

问题标题组件

现在,如果我更改问题标题的文本,状态会更新并且标题也会更改。当我将问题从 2 拖到 1 时。我也更新了问题数组。

问题 2 保持在原来的位置,如果我拖动相同类型的问题,例如:文本,就会发生这种情况。问题类型在问题对象中定义。

0 投票
2 回答
3447 浏览

html - reactjs中如何获取HTML5数据属性的值

如何获取上述节点中数据属性值的值。

0 投票
0 回答
342 浏览

node.js - 通过避免 NODE_ENV 检查来改进 React 服务器端渲染的最佳方法

我正在使用 require('babel-register') 来允许在 node.js 中使用 ES6 并对我的 react 组件进行服务器端渲染。

在本次演讲中(7:14 左右开始) https://youtu.be/PnpfGy7q96U?t=7m14s

将 React 服务器端渲染性能提高 30% 以上的一项主要建议是将 ReactDOMServer 指向构建的客户端版本

例如,代替 var ReactDOMServer = require('react-dom/server') 使用 var ReactDOMServer = require('react/dist/react.min')

速度提高的原因是因为客户端版本避免了对 process.env.NODE_ENV 的检查,结果证明这是一项昂贵的操作。

这个技巧以前似乎很管用,但在 React 15 中,客户端代码不再直接公开 renderToString 和 renderToStaticMarkup 的方法。相反,它隐藏在看起来很吓人的属性 __SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED 后面:

因此,您可以执行类似 var ReactDOMServer = require('react/dist/react.min').__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;

但显然这似乎不是一个好主意(可能不会与 React 的未来版本向前兼容)。

我试过 require('react/dom-server/dist/react-dom-server.min') 但这会返回一个'未定义'(我相信包装代码是为了在客户端而不是服务器上运行)。

是否还有其他更受认可的建议来实现这种性能提升?

作为参考,此处记录了原始问题,但问题似乎已关闭: https ://github.com/facebook/react/issues/812

0 投票
1 回答
334 浏览

javascript - 为什么 React 渲染的 DOM 节点不被 React.PropTypes.node 验证视为节点?

假设我有两个组件:

叠加触发器:

覆盖容器组件从父组件获取其属性,该父组件监视全局存储以获取活动覆盖定义,该定义具有 triggerNode 属性。

这里的结果是,triggerNode传递给 OverlayContainer 的是一个有效的 DOM 节点,但通过 ReactPropTypes 的isNode验证器验证失败。为什么?如何解决这个问题?

0 投票
2 回答
3895 浏览

javascript - 反应模态参考未定义!无法添加自定义属性

我有一个简单的模态:

我的唯一目标是将自定义属性(不幸的是,它不能以 data- 或 aria- 开头,因为它是由第三方定义的divref="test"

当我尝试注入自定义属性时:

这里元素总是未定义的,所以setAttribute失败了;如果我去检查元素,ref="test"则不存在<div>!有人可以帮我解释为什么模态中缺少这个 ref 吗?

0 投票
2 回答
2040 浏览

javascript - 有条件地渲染一个反应组件

对于在其生命周期中某个时刻隐藏的组件,渲染它的最佳方式是什么?1)渲染组件,但不显示它(显示:无)。2) 仅在需要时渲染组件。什么对性能更好?如果组件的 props 和 state 稍后更新,让组件存在但隐藏在虚拟 DOM 中会更好吗?

或这个:

0 投票
3 回答
12041 浏览

node.js - 安装反应时npm找不到package.json

这是我之前的问题的后续问题(但是一个独立的问题)

我正在尝试在 Mac 上安装 react 和 react-dom:

但收到以下警告(路径名替换为...):

我搜索了一下,但没有找到这些警告的充分理由。像这样的SO 帖子似乎建议在安装节点模块的同一目录中安装 react。我的节点已安装,usr/local/binpackage.json即使在全局搜索中也不会出现在机器上的任何位置。我只是在尝试安装 react 之前安装了 npm,所以不要认为它是版本问题。

0 投票
3 回答
4469 浏览

reactjs - Webpack2,如何从构建中排除 react 和 react dom

我的目标是为使用 webpack 在 ES6 中制作的反应组件库创建一个模块。

我在用:

  • 网络包:“2.1.0-beta.25”
  • 反应:“15.4.1”

我需要分配reactreact-dom作为 peerDependencies,这样它就不会被开发人员下载。

这是我的相关部分package.json

根据https://webpack.github.io/docs/configuration.html#externalshttps://webpack.github.io/docs/library-and-externals.html

我尝试了以下配置:

1.

2.外部:{反应:'react','react-dom':'react-dom',}

3.

4.

5.

我总是有这个错误:

所以我想知道,文档对此不是很清楚。

2017 年 12 月,最多 2018 年 1 月,我怎样才能排除ReactReactDOM被捆绑?