- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用react-test-renderer的渲染器对我的react组件进行单元测试。它工作正常,但使用 ReactCssTransitionGroup 后,我收到以下错误“TypeError:无法读取未定义的属性'baseVal'”。不知道如何解决这个问题
我确认这个问题是由ReactCssTransitionGroup引起的
下面是我的组件文件:
import React from 'react';
import PropTypes from 'prop-types';
import {List, ListItem, Spinner} from '@stores/reactCommon';
import ReactCSSTransitionGroup from 'react-addons-css-transition-group';
import BagListItem from './bag-list-item';
const BagList = ({bagList, loading}) => {
const items = bagList.map((item, key) => (
<ListItem key={key}>
<BagListItem
upc={item.upc}
price={item.sellingPrice}
description={item.description}
/>
</ListItem>
));
return (
<div className="bag-list">
{loading ? (
<span className="bag-list__spinner">
<Spinner size="extra-large" />
</span>
) : null}
<div className="bag-list__story-default-spacer">
<List maxHeight="70vh">
<ReactCSSTransitionGroup
transitionName="bagList"
transitionAppear={true}
transitionAppearTimeout={500}
transitionEnterTimeout={500}
transitionLeaveTimeout={300}
>
{items}
</ReactCSSTransitionGroup>
</List>
</div>
</div>
);
};
BagList.propTypes = {
bagList: PropTypes.array.isRequired,
loading: PropTypes.bool
};
export default BagList;
下面是我的单元测试文件
import React from 'react';
import renderer from 'react-test-renderer';
import BagList from '../../../../src/client/js/components/bag-list/bag-list';
describe('<BagList />', function() {
this.items = [
{
upc: '123222123',
sellingPrice: '12',
description: 'this is a description'
},
{
upc: '555123',
price: '23',
description: 'this is a description'
}
];
this.getComponent = items => {
return <BagList bagList={items} loading={false} />;
};
it('Should render <BagList /> with bagList', () => {
// this line is generating the error
const items = renderer.create(this.getComponent(this.items)).toJSON();
expect(items).toMatchSnapshot();
});
});
最佳答案
react-addons-css-transition-group
是一个旧包,是 deprecated支持react-transition-group
.
react-transition-group
的 v1是一个直接替代品,但在 v2 中被重写。
您可能想要移至 CSSTransition
从最新 react-transition-group
.
话虽如此,错误来自于这段代码:
function hasClass(element, className) {
if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
}
...在 hasClass.js
模块来自dom-helpers
旧包包含 react-addons-css-transition-group
.
react-test-renderer
...
...provides an experimental React renderer that can be used to render React components to pure JavaScript objects, without depending on the DOM or a native mobile environment
...所以它没有实现 DOM 提供的所有内容。
在本例中,它看起来像 react-test-renderer
没有提供 classList
的实现在element
上如此称呼element.className.baseVal
抛出您所看到的错误。
关于reactjs - 类型错误 : Cannot read property 'baseVal' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55380937/
SVG 元素的 animVal 和 baseVal 什么时候不同?什么时候使用它们来获得正确的值是合适的?逐字差异可以根据here读取,但当所有这些值可能不同时,我更担心。任何转换或缩放都会影响它?
我正在使用react-test-renderer的渲染器对我的react组件进行单元测试。它工作正常,但使用 ReactCssTransitionGroup 后,我收到以下错误“TypeError:无
同样,animVal 可用于检索动画变换值(例如 path.transform.animVal[0].angle),baseVal 和 animVal 也可用于检索动画笔画-dasharray 和 s
我是一名优秀的程序员,十分优秀!