setState vs refs in react.js
Ich habe Registerkarten in Reaktion erstellt und jetzt muss ich die Klasse der Registerkarten ändern. Die Registerkartenklassen können wie folgt lauten:
1: active
2: previousActive
3: alreadySelected
Ein Klick auf eine Tab-Klasse wird zuactive
und überprüfe, ob es vor @ ausgewählt wurde oder nicalreadySelected
Klasse undactive
class von der zuletzt aktiven Registerkarte wird entfernt, andernfalls wirdalreadySelected
dann füge hinzualreadySelected
.
Code einer Registerkarte in reagieren:
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"))
);
}
});
Um die Klasse der Registerkarten zu ändern, habe ich zwei Möglichkeiten und möchte wissen, welche wirksam ist. Code-Stil eins:
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({
class: str1
});
}
Code Style 2
a.tabBody.refs.body.classList.remove('activeTab');
a.tabBody.refs.body.classList.add('tabPreviewComplete');
a.tabSleeve.refs.body.classList.add('activeTab');
Welcher Stil ist dafür gut und warum?