我在react
中尝试了这段代码,但我收到了这个错误:
意外令牌。
我试图将bind
值html
放在html
上,看看值的变化是否反映在angular ng-bindings
上,就像class NameForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: ''};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
handleSubmit(event) {
alert('A name was submitted: ' + this.state.value);
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
<a>{this.state.value}</a>
);
}
}
ReactDOM.render(
<NameForm />,
document.getElementById('root')
);
一样。
代码:
<script type="text/javascript">
function getDefinedCss(s){
if(!document.styleSheets) return '';
if(typeof s== 'string') s= RegExp('\\b'+s+'\\b','i'); // IE
capitalizes html selectors
var A, S, DS= document.styleSheets, n= DS.length, SA= [];
while(n){
S= DS[--n];
A= (S.rules)? S.rules: S.cssRules;
for(var i= 0, L= A.length; i<L; i++){
tem= A[i].selectorText? [A[i].selectorText,
A[i].style.cssText]: [A[i]+''];
if(s.test(tem[0])) SA[SA.length]= tem;
}
}
return SA.join('\n\n');
}
console.log(getDefinedCss ('ui-helper-hidden'));
</script>
有人能告诉我哪里出错了。
答案 0 :(得分:4)
原因是,您从html
方法返回多个render
元素,在组件的render
中,您只能返回一个节点;如果您有要返回的元素列表,则必须将其包含在div
,span
或任何其他component
中。
不要忘记,render()
基本上是function
,Functions
总是会接受多个参数,并始终只有return
一个值。
使用此:
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
<a>{this.state.value}</a>
</div>
);