React için çok yeni ama genel olarak javascript ile oldukça tanıdık yeni. React ile başlamak için gerçekten zor bir zaman geçirdim ve birisinin şu üç düğmede durumu nasıl yönetmem gerektiğini bana açıklayabileceğini merak ediyordum.Yinelenen bir dizi içinde her dizinin durumunu nasıl yönetirim REACT
MY ANA PARÇA:
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
var classNames = require('classnames');
import classnames from 'classnames';
import Fans from './Buttons'
export default class Main extends React.Component {
constructor(props) {
super(props);
this.state = {
Buttons:[
{ src: '/src/images/1.svg',
button: 1
},
{ src: '/src/images/2.svg',
button: 2
},
{
src: '/src/images/3.svg',
button: 3
}
]
}
}
render() {
var buttons = this.state.Buttons.map(function(button){
return(<Buttons key={button.button}
buttNum={button.button}
src={button.src}
/>);
})
return (
<div>
{buttons}
</div>
);
}
};
MY DÜĞME PARÇA:
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import classnames from 'classnames';
var classNames = require('classnames');
export default class Buttons extends React.Component {
constructor(props) {
super(props);
this.state = {isActive: false}
this.selectButton = this.selectButton.bind(this)
}
selectButton() {
let active = !this.state.isActive;
this.setState({isActive: active})
}
render() {
let classes = classnames('btn-success', {selected: this.state.isActive});
return (
<img src={this.props.src}
buttNum={this.props.key}
onClick={this.selectButton}
className={classes} />
);
}
};
NASIL BİREYSEL DÜĞMELER ON durumunu yönetmek DO ?! Bunu neden bu kadar zor ki ... jQuery veya Açısal ile bu 5 satır kod ile yapılabilir!
Sadece 'seçili' sınıfı tek seferde tek bir düğmede kullanılabilir hale getirmeye çalışıyorum - bunun yerine tek tek düğmelerde seçilebilir ancak tüm düğmelerin durumunu akımımla nasıl yönetebileceğimi bilmiyorum selectButton() tıklatma işleyicisi. Şu anda sadece tıklanan düğmenin durumuna erişebiliyorum ...
Herhangi bir yardım büyük bir memnuniyetle karşılanacaktır! Teşekkürler.
sayesinde bu benim yapmaya çalıştığım olandan çok daha mantıklı erichrardson30 @. – Maxwelll
Ne yazık ki yazdığınız changeActive (index) işlevi çalışmıyor ve nasıl düzeltileceğine dair bir fikrim yok. Bir sözdizimi hatası atmadan dizinin belirli bir dizini this.setState olarak nasıl adlandırılır? – Maxwelll
@MaxwellLasky Bu işlevi güncelledim. Bunun için üzgünüm. Durumu bir dizideki bir öğede güncelleyemezsiniz. Bir kopyasını oluşturmanız, kopyasını istediğiniz şekilde güncellemeniz ve ardından tüm dizinin durumunu ayarlamanız gerekir. – erichardson30