我使用以下代码创建了一个React组件.在这个我创建选项卡并添加类并将其引用存储在全局命名空间接口中以进行进一步处理.
var TabBody = React.createClass({
getInitialState: function() {
return {
class: 'tabBody tab activeTab'
}
},
render: function() {
Interfaces.tabBody = this;
tabSelectionInfo.tabBody = this;
return (
React.createElement('div', {
className: this.state.class,
onClick: handleTabClick
},
React.createElement('span', {}, "Body"))
);
}
});
Run Code Online (Sandbox Code Playgroud)
现在使用以下函数,将类添加到上面的组件和控制台显示错误未定义.我如何存储此组件的refrance以便稍后更改其类.
handleTabClick = function() {
Interfaces.tabBody.classList.add('tabPreviewComplete');
}
Run Code Online (Sandbox Code Playgroud) 我在react中创建了选项卡,现在单击我必须更改选项卡类的选项卡类,如下所示:
1:活动
2:previousActive
3:已选中
单击选项卡类后active,检查它是否被选中之前是否使用了alreadySelected类和active类,从上一个活动选项卡中删除,如果不是alreadySelected则添加alreadySelected.
响应中的一个选项卡的代码:
var TabBody = React.createClass({
getInitialState: function() {
return {
class: 'tabBody tab activeTab'
}
},
render: function() {
a.tabBody = this;
return (React.createElement('div', {
className: this.state.class,
ref: 'body',
onClick: handleTabClick
},
React.createElement('span', {}, "Body"))
);
}
});
Run Code Online (Sandbox Code Playgroud)
为了改变我正在做的标签的类有两种方式,并想知道哪个是有效的.代码风格一:
var bodyClass = (a.tabBody.state.class).split(' ');
var sleeveClass = (a.tabSleeve.state.class).split(' ');
var neckClass = (a.tabNeck.state.class).split(' ');
if (data === 'tabBody') {
bodyClass.push('activeTab');
var str1 = program.arrayToString(bodyClass);
Interfaces.tabBody.setState({ …Run Code Online (Sandbox Code Playgroud) 这是我的ajaxHandler我想将其转换为本机JavaScript,即使用XMLHttpRequest,但我无法理解如何转换.
ajaxHandler = {
defaultAttributes: {
type: 'GET',
url: 'index.php/request',
datatype: 'json',
data: {},
success: null,
error: function(data) {
errorHandler.showError('An Error occurred while trying to retreive your requested data, Please try again...');
},
timeout: function() {
errorHandler.showError('The request has been timed out, Please check your Internet connection and try again...');
}
},
sendRequest: function(attributes) {
Paper.giffyLoading.style.display = 'block';
if (!attributes.nopopup) {
if (attributes.loadmsg) {
Controllers.AnimationController.createProgressBarScreen(attributes.loadmsg);
attributes.loadmsg = null;
}
}
$.ajax(attributes);
}
}Run Code Online (Sandbox Code Playgroud)
我试着像这样转换上面的代码
XMLRequestDefaultHandler = function() {
var xmlHttp …Run Code Online (Sandbox Code Playgroud)