@V0vash
НАшКОДИЛ

Почему React потерял контекст?

Начал изучать паттерны React'a, столкнулся с проблемой с Render callback

Передаю в качества пропса функцию renderItem

<ItemList 
                        onCharSelected={this.onCharSelected}
                        getData={this.service.getAllCharacters}
                        renderItem={(item) => item.name} />


Здесь пытаюсь ею воспользоваться

renderItems(arr) {
        return arr.map((item) => {
            const {id} = item;
            console.log('props',this.props.renderItem);
            const label = this.props.renderItem(item);
            return(
                <li 
                    key = {id}
                    className="list-group-item"
                    onClick = {() => this.props.onCharSelected(id)}>
                    {label}
                </li>
            )
        })
    }


Получаю ошибку : TypeError: _this3.props.renderItem is not a function

хотя, arr.map - стрелочный => контекст не теряю
при этом при log'e получаю, то что желаю увидеть:
props ƒ renderItem(item) {
return item.name;
}

ну и при console.log(this.props.renderItem(item)); получаю, нужные имена без каких либо проблем
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
locky_yotun
@locky_yotun
Я видел некоторый джаваскрипт
Приведите полный код — а лучше сделайте (не)работающий пример в песочнице.
Я вот взял ваш код и сделал — https://codesandbox.io/s/great-brattain-stb6z?file...
Все работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы