циклический рендеринг jsx-элемента через массив

#javascript #reactjs

#javascript #reactjs

Вопрос:

Мне нужно использовать оболочку внутри компонента jsx. Я хочу, чтобы в элементе props вызывалась функция, которая будет решать, добавлять в props две функции обратного вызова или нет. Но это дает мне обещание взамен. Поэтому я не могу вызывать эти обратные вызовы в дочернем компоненте (. Что я должен изменить, чтобы это работало?

     render() {
        return(
            <div className="aplication">
                <Menu isLogined={(this.state.user)? true: false}
                      fullName={this.state.user amp;amp; this.state.user.name   " "   this.state.user.surname}/>
            <div className="container border">
                {(this.state.isLoading)? (<p>Loading...</p>)
                    : this.state.postList.map((post, i)=>
                        (<Post title = {post.title}
                              post= {post.text}
                              handlers={this.getHandlers(post.user_id)}
                        />))
                }
                <NewPostForm add={this.add}/>
            </div>
            </div>
        );
    }
  
     async getHandlers(postUserId) {
        let result = await fetch('/api/user');

        if(result.ok) {
            let serverUser = await result.json();
            let handlers = {edit: this.edit, remove: this.remove};

            if (serverUser
                amp;amp; (serverUser.role == 'admin'
                || serverUser.id == postUserId)) {
                console.log(handlers);
                return handlers;
            }
        }

        return null;
    }
  

Комментарии:

1. Асинхронная функция всегда возвращает обещание. Было бы лучше выполнять эти запросы при загрузке данных post и включать результаты в свое состояние перед рендерингом

2. Спасибо. Я был так переполнен(((

3. но я перебираю данные, отображающие его (( я не понимаю, где вызывать данные для конкретного элемента (