Передать функцию через props React

193
05 февраля 2020, 23:10

Есть класс App, в методе render я вставляю компонент Proposal:

{this.state.proposals.map(proposal => <Proposal name={proposal.name} key={proposal.id} id={proposal.id} handleEvent={this.handleEvent} votes={this.getProposalVoteCount(proposal.name)}/>)}

Вопрос заключается в votes {() => this.getProposalVoteCount(proposal.name)}

getProposalVoteCount() обьявлена в этом же классе, возвращает число, написана правильно.

Тем не менее число сразу не возвращается в props, а в консоль выходит ошибка:

index.js:1446 Warning: Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.

В чем проблема?

Answer 1

Попрубуйте обернуть ваш вывод в методе render во фрагмент:

render() {
    return (
        <>
            {this.state.proposals.map(proposal => (
                <Proposal
                    name={proposal.name}
                    key={proposal.id}
                    id={proposal.id}
                    handleEvent={this.handleEvent}
                    votes={this.getProposalVoteCount(proposal.name)}
                />
            ))}
        </>
    );
}

Подробнее о фрагментах можно почитать тут.

READ ALSO
Как рисовать архитектуру приложений на React?

Как рисовать архитектуру приложений на React?

Как принято рисовать архитектуру для приложений React, или хотя бы JS? Нужен какой-нибудь простой гайд, для начинающих

192
можно ли через props передавать async/await функции?

можно ли через props передавать async/await функции?

можно ли через props в react передавать async/await функции?

145
Как в service worker (PWA) кэшировать все картинки?

Как в service worker (PWA) кэшировать все картинки?

К примеру есть инсталл у воркера , Каким образом можно закэшировать все картинки в папке images? Добавлять их по одной в addAll ? А если их 1000 , возможно...

163
Как зациклить видео фон на iphone?

Как зациклить видео фон на iphone?

Поставил видео фон на страничку, все хорошо, работает на андроиде, пк, ноуте

214