错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
Error: Syntax error, unrecognized expression: unsupported pseudo: invalid / ReactJS / Unit Testing
当我进行此测试时,我得到以下错误:"错误:语法错误,无法识别的表达式:不支持的伪:无效"。
我不知道我的代码有什么问题。有人能给我看看吗?非常感谢。
jest.disableAutomock();
jest.unmock('../resources/assets/js/testcomponents/InputText.js');
jest.dontMock('react-bootstrap');
_ = require('lodash');
$ = require('jquery');
var React = require('react'),
InputText = require('../resources/assets/js/testcomponents/InputText.js').InputTextEditable,
TestUtils = require('react-addons-test-utils'),
ReactDOM = require('react-dom');
describe('InputText', function () {
var InputElement = TestUtils.renderIntoDocument(
<InputText
area={false}
//evts={{onChange: handleChange}}
attributes={{
label:'Test Input Isole',
name:'InputTextArea',
value: '',
wrapperClassName: 'col-md-4',
labelClassName: 'col-md-2',
groupClassName: 'row'
}}
//ref="InputField"
editable={true}/>);
var DomElement = ReactDOM.findDOMNode(InputElement);
//var inputV = ReactDOM.findDOMNode(InputElement.refs.InputField);
var input = DomElement.getElementsByTagName('input')[0];
it('updates input value on key press', function () {
TestUtils.Simulate.change(
DomElement.getElementsByTagName('input')[0],
{target: {value: 'a'}}
);
expect(input.getAttribute('value')).toEqual('a');
});
编辑:这是我的组件
var InputText = React.createClass({
mixins: [MixinInputValue],
propTypes: {
attributes: React.PropTypes.object,
evts: React.PropTypes.object,
gestMod: React.PropTypes.bool,
area: React.PropTypes.bool,
validator: React.PropTypes.func
},
getDefaultProps: function () {
return {
attributes: {},
evts: {},
gestMod: true,
area: false,
validator: function (val, props, state) {
if (val.length == 0 && typeof(props.attributes.required) != 'undefined' && props.attributes.required) {
return {isValid: false, style: 'default', tooltip: ''};
}
else if (val.length == 0) {
return {isValid: true, style: 'default', tooltip: ''};
}
else {
return {isValid: true, style: 'success', tooltip: ''};
}
}
};
},
render: function () {
console.log('passerender');
var attrs = this.generateAttributes();
var type = this.props.area ? "textarea" : "text";
return (
<Input
className={this.props.menuClassName}
type={type}
{...attrs}
{...this.props.evts}
className={this.props.menuClassName}
onChange = {this.handleChange}
onBlur = {this.handleBlur}
value={this.state.value}
ref = "InputField"
hasFeedback
/>
);
}
});
第二次编辑=好的,我想问题来自这个文件
getStateAttributes: function (val, DOM) {
var attrs = {};
attrs = _.extend((this.props.gestMod ? {'data-gest-mod': this.props.gestMod} : {}), attrs);
var validation = this.props.validator(val, this.props, this.state, DOM);
var html5Validity = true;
if (DOM !== undefined) {
console.log("petit message", DOM.outerHTML);
var temp = $(DOM.outerHTML);
temp.find('div');
html5Validity = DOM.querySelectorAll(':invalid').length == 0;
// html5Validity = temp.find(':invalid').length == 0;
}
attrs = _.extend({'data-valid': validation.isValid && html5Validity}, attrs);
// 4. AJOUT DU STYLE REACTB
var style = {'bsStyle': (!Validator.matches(validation.style, 'success|warning|error', 'i') ? undefined : validation.style)};
if (!html5Validity) {
style = {'bsStyle': 'error'};
}
if (validation.tooltip.length > 0) {
style.help = validation.tooltip;
}
attrs = _.extend(style, attrs);
return attrs;
},
这个代码就是问题所在:
var html5Validity = true;
if (DOM !== undefined) {
console.log("petit message", DOM.outerHTML);
var temp = $(DOM.outerHTML);
temp.find('div');
html5Validity = DOM.querySelectorAll(':invalid').length == 0;
// html5Validity = temp.find(':invalid').length == 0;
}
attrs = _.extend({'data-valid': validation.isValid && html5Validity}, attrs);
我对此进行了尝试,以解决我的问题及其工作!:
var html5Validity = true;
if (DOM !== undefined) {
try {
html5Validity = $(DOM).find(':invalid').length == 0;
console.log('pass');
} catch (e) {
console.log('catch');
html5Validity = true;
}
}
attrs = _.extend({'data-valid': validation.isValid && html5Validity}, attrs);
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jQuery AJAX Post方法错误(语法错误)
- 如何“;修复解析错误:语法错误,意外'{'in”用于php
- 错误:错误:语法错误,无法识别的表达式:
- 未捕获错误:语法错误,无法识别的表达式:ajaxsample/update_agenda(CodeIgniter)
- 未捕获错误:语法错误,无法识别表达式Jquery选择器单引号与双引号
- Javascript ( jQuery ) 错误: 语法错误: 缺少 ) 在参数列表之后
- 错误:语法错误:令牌“”,“”是意外的标记
- 未捕获的错误:语法错误,无法识别的表达式:输入:复选框[名称=ninja_forms_field_57[术语]]
- 未捕获的错误:语法错误,无法识别的表达式:“.b-brand-box”
- 未捕获的错误:语法错误,无法识别的表达式:href
- ReactJS 返回解析器错误语法错误:在 AJAX 调用 JAVA servlet 后出现意外的标记 a
- jQuery:未捕获错误:语法错误,无法识别的表达式
- j查询错误 - 语法错误:缺少:在属性 ID 之后
- 在使用 Gulp 在 javascript 中声明对象时,在 Git bash 中出现以下错误“语法错误:意外标识符”
- 获取未捕获错误:语法错误、无法识别的表达式
- 获取错误语法错误:属性列表 url 后缺少 }:http://localhost/mcportal/public/pos
- 为什么我收到错误“语法错误:非法字符”
- 未捕获错误:语法错误,无法识别的表达式