Есть код:
class TodoTask extends React.Component {
render() {
return (
<ul>
{this.props.tasks.forEach((currentValue, index) => {
<li key={index}>
{currentValue}
<button type="submit" id={index} onClick={this.props.click}>Delete</button>
</li>
})}
</ul>
);
}
}
Нужно в другом компоненте получить id
нажимаемой кнопки, я хочу сделать это в строке:
tasksArray: e.tasksArray.splice(id, 1)
Как правильно получить id
наживаемой кнопки из другого компонента?
Можно получить простым способом через событие event
, так как аттрибут id
уже был заполнен, то не составит особого труда получить его значение. Пример кода:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
tasks: ['first', 'second', 'third'],
};
}
onButtonClick(event) {
console.log('id:', event.currentTarget.id);
alert(`Was clicked id: ${event.currentTarget.id}`);
}
render() {
const { tasks } = this.state;
return (
<ul>
{tasks.map((currentValue, index) => (
<li key={index}>
{currentValue}
<button type="submit" id={index} onClick={this.onButtonClick}>Delete</button>
</li>
))}
</ul>
)}
}
ReactDOM.render(
<App />,
document.getElementById('container')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="container">
<!-- This element's contents will be replaced with your component. -->
</div>
P.S.: переделал forEach
на map
, так как использование forEach
здесь не уместно.
Event.currentTarget
- элемент, в котором в данный момент
обрабатывается событие, при движении события внутри DOM. Всегда
совпадает с текущим элементом, в отличие от свойства event.target
,
идентифицируещее элемент, на котором событие возникло.
P.S.: event.currentTarget
используется, когда один и тот же обработчик события присваивается нескольким элементам.
Если id определяется с помощью index то и передавайте index в колбэк:
<button type="submit" id={index} onClick={()=>this.props.click(index)}>Delete</button>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть стандартный функционалТекст и кнопка читать подробнее
Есть у меня подобная конструкцияНе понимаю, как сделать так, чтобы после получения информации со второго fetch можно было бы использовать как...
Как можно оцентрировать значение, которое отражается в ползунке JQuery UI?