Показать сообщение отдельно
  #1 (permalink)  
Старый 11.05.2018, 23:00
Интересующийся
Отправить личное сообщение для ArtyomZaitsev Посмотреть профиль Найти все сообщения от ArtyomZaitsev
 
Регистрация: 29.11.2017
Сообщений: 11

Получить номер элемента после .map()
ДОбрый день, подскажите пожалуйста, есть ли адекватный способ получать порядковый номер, или заданный id, у компонента Worker после того, как создали и вывели из этих компонентов массив?
class Worker extends React.Component { 
  render() {
    return <div>
      <div>{this.props.name} {this.props.surname}</div> 
      <input value={this.props.zp} onChange={this.props.onChange}/>
      <input value={this.props.days} onChange={this.props.onChange}/>
      <div>{this.props.fullZp}</div>     
    </div>;
  }
}

class App extends React.Component {
  constructor() {
    super();

    this.state = {
      worker:['Petr Petrov 23 150', 'Ivan Ivanov 40 100', 'Stepan Stepanov 3 200']
    };
  }

calcZp=()=>{   
    // метод внутри которого хочется получить id
  }

  render() {
    let list = this.state.worker.map((item, index)=>{
      let arr = item.split(' ')
      let fullZp = arr[2] * arr[3]
      return <li><Worker 
                  name={arr[0]} 
                  surname={arr[1]} 
                  days={arr[2]} 
                  zp={arr[3]} 
                  fullZp={fullZp} 
                  id={index}
                  onChange={this.calcZp} 
          /></li> 
    })
    return <div>
      <ul>
        {list}
      </ul>
    </div>;
  }
}  
ReactDOM.render(
<App />,
document.getElementById('app')
)


event.target.id не помогает. Может я вообще пытаюсь все усложнить и так делать не стоит?
Ответить с цитированием