- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我被指派修复一些失败的 Jest 测试。这是一个例子:
这是 checkboxGroup.spec.js:
import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import CheckboxGroup from '../components/core/CheckboxGroup';
import Checkbox from '../components/core/Checkbox';
describe('CheckboxGroup', () => {
it('should exist', () => {
expect(CheckboxGroup).toBeDefined();
});
it('should add checkboxes as children', () => {
class CheckboxGroupSample extends React.Component {
selected = [];
render() {
return (
<div>
<CheckboxGroup selected={ this.selected }>
<Checkbox value={ 1 }></Checkbox>
<Checkbox value={ 2 }></Checkbox>
<Checkbox value={ 3 }></Checkbox>
</CheckboxGroup>
Selected: { this.selected.toString() }
</div>
);
}
}
const checkboxGroup = TestUtils.renderIntoDocument(<CheckboxGroupSample />);
const checkboxGroupNode = ReactDOM.findDOMNode(checkboxGroup);
// Verify the correct number of children are created
expect(checkboxGroupNode.children.length).toEqual(3);
});
这是我的 CheckboxGroup.jsx:
import React, { PropTypes } from 'react';
import valueCompare from './internal/valueCompare';
import Checkbox from './Checkbox';
export default class CheckboxGroup extends React.Component {
static propTypes = {
defaultSelected: PropTypes.any,
selected: PropTypes.any,
children: PropTypes.node,
onSelect: PropTypes.func,
onChange: PropTypes.func,
name: PropTypes.string
}
handleSelect(event, value) {
if (this.props.onSelect) {
this.props.onSelect(event, value);
}
}
render() {
const {
selected,
name,
onChange
} = this.props;
return (
<div>
{ React.Children.map(this.props.children, child =>
React.cloneElement(child, {
onChange: this.handleSelect,
checked: valueCompare(selected, child.props.value),
name: name
})
) }
</div>
);
}
}
第二个测试失败:预期值为 3,但返回值为 1。当我使用 console.log(checkboxGroupNode) 时,它看起来像是从该元素开始。如果我能够到达 ReactDomComponent 的 _renderedChildren
,我就会拥有我的 3 个 child 。
HTMLDivElement {
'__reactInternalInstance$2oq0ezu6d76f7k2ux2n0e2vs4i':
ReactDOMComponent {
_currentElement:
{ '$$typeof': Symbol(react.element),
type: 'div',
key: null,
ref: null,
props: [Object],
_owner: [Object],
_store: {} },
_tag: 'div',
_namespaceURI: 'http://www.w3.org/1999/xhtml',
_renderedChildren: { '.0': [Object], '.1': [Object], '.2': [Object] },
_previousStyle: null,
_previousStyleCopy: null,
_hostNode: [Circular],
_hostParent: null,
_rootNodeID: 1,
_domID: 1,
_hostContainerInfo:
{ _topLevelWrapper: [Object],
_idCounter: 17,
_ownerDocument: [Object],
_node: HTMLDivElement {},
_tag: 'div',
_namespaceURI: 'http://www.w3.org/1999/xhtml',
_ancestorInfo: [Object] },
_wrapperState: null,
_topLevelWrapper: null,
_flags: 1,
_ancestorInfo:
{ current: [Object],
formTag: null,
aTagInScope: null,
buttonTagInScope: null,
nobrTagInScope: null,
pTagInButtonScope: null,
listItemTagAutoclosing: null,
dlItemTagAutoclosing: null },
_contentDebugID: null,
_mountIndex: 0,
_mountImage: null,
_debugID: 2 } }
该代码是大约一年前编写的 - 失败可能是由于 React 和/或 Jest 的更新,或其他原因。我确信测试会在某个时间点通过。
最佳答案
经过进一步调查,我发现期望应该是:
expect(checkboxGroupNode.childNodes[0].children.length).toEqual(3);
这是 Jest/React 更改的结果,还是测试一开始就写得不正确?
关于javascript - ReactDOM.findDOMNode 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41899449/
我有一个包含 React 应用程序和其他 HTML 元素的项目。这意味着: ReactDOM.render(, document.getElementById('element1') ReactDO
我有如下代码,我在其中调用 ReactDOM.Hydrate。这是共享代码,有时从节点服务器调用,有时在客户端浏览器中调用。仅在客户端上调用它时,我是否需要做任何不同的事情(然后调用Hydrate)。
我有多个元素使用相同的类并具有相同的内容。 所以我可以使用 ReactDOM 来渲染它们,而不是: ReactDOM.render( , document.getElementsByC
ReactJS 新手,无法找出为什么此页面没有显示任何内容 -
我正在尝试用 reactjs 编写一个基本程序 Hello React! ReactDOM.render(
我是 React 新手,我正在尝试遵循这个滴答作响的时钟示例,但做一些不同的事情。我想要ReactDOM将在 index.js 中呈现。这是我的代码: Timer.js: import React f
我有一个方法可以在提供的容器内呈现一个图标(字体很棒的图标)。图标渲染可以通过用户单击特定 div 或程序本身在模仿用户单击特定 div 时自动调用渲染函数来进行。 为了更好地理解这一点。我创建了这个
我正在将 React 与 Webpack 和 Babel 结合使用。我收到运行时错误: Uncaught ReferenceError: ReactDom is not defined 我的 reac
升级到版本 0.14.2 后,我看到错误并建议使用 ReactDOM.render()而不是 React.render(),但是我从哪里导入它呢? 当我不导入它并按原样运行时,它显示为 undefin
索引.js: import React from 'react'; import buttonsInstance from 'components/button-instance'; import {
来自 React 16 docs关于ReactDOM.Hydrate(), Same as render(), but is used to hydrate a container whose HTM
我的 react 有点新。我发现我们必须导入两个东西才能开始,React 和 ReactDOM,任何人都可以解释其中的区别。我正在阅读React documentation ,但没有说。 最佳答案 R
因此请考虑以下示例: import React from 'react'; import ReactDOM from 'react-dom/dist/react-dom'; class Dash
我是 ReactJS 的新手。我试图使用 ReactDOM 渲染一个简单的 div,但无法这样做。这是我的代码: Hello React
我有一个问题。我一直在我工作的公司开发 React 组件,但从未真正使用过 reactDOM.render()功能。(除了内部 INDEX.JS: ReactDOM.render( , documen
我不明白为什么此页面没有显示任何内容: console.log("Hi
我有一个简单的 React 应用程序,它包含一组数据,这些数据显示在 React 中创建的容器中: var products = [ { name: 'product 1'}, { name: 'pr
在我的主文件中我有这段代码 import phoneReactElement from "../components/phone.js"; ReactDOM.render(, document.get
为什么这不起作用?我正在关注 YouTube 教程。 function Hello(props) { return Hello; } ReactDOM.render( Hello, d
目前无法弄清楚为什么我的代码没有呈现。会喜欢你们中一些杰出的 react.js 编码员的一些建议。真的不明白哪里出了问题 - 我觉得应该可以。 这是我的 App.js import React fro
我是一名优秀的程序员,十分优秀!