vanyahuk
@vanyahuk

Как перебрать props в react.js?

вот сюда передаю параметры
window._sharedData = {
                    "account": {"personal_info":"\u041b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435","settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","sign_out":"\u0412\u044b\u0445\u043e\u0434"}
            }


в консоли выгледит так:
5a952acf7c91f594189352.png

ниже подключаю скрипт с реактом

export default class Root extends Component {
    
    render() {
        return (
            <MuiThemeProvider>
                <AppBar
                    title=""
                    showMenuIconButton={false}
                    iconElementRight={
                        <IconMenu
                        iconButtonElement={<IconButton><MoreVertIcon /></IconButton>}
                        anchorOrigin={{horizontal: 'right', vertical: 'top'}}
                        targetOrigin={{horizontal: 'right', vertical: 'top'}}
                    >

                            { this.props._sharedData.account.map((item, i) => (

                                <MenuItem primaryText={item}  />

                                ))}


                    </IconMenu>
                    }
                >
                </AppBar>
            </MuiThemeProvider>
        );
    }
}


if (document.getElementById('root')) {
    ReactDOM.render(<Root _sharedData={window._sharedData} />, document.getElementById('root'));
}


и получаю ошыбку
5a952b344504b142709922.pngfor() тоже не работает
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
Папробуйте так
{ Object.keys(this.props._sharedData.account).map(
(item, i) => (
                                <MenuItem primaryText={this.props._sharedData.account[item]}  />
                                )
)}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maxfarseer
@maxfarseer
реакт.рф, обучаю реакту и компании
В добавок к ответу Романа - учитесь читать ошибки. Что у вас написано: this.props._sharedData.account.map is not a function. Почему? Потому что this.props._sharedData.account.map = undefined, а undefined() = ошибка с таким текстом.

А все почему? потому что метод map работает только для массивов! А у вас объект. Чтобы вам было легче изучать реакт и иметь хороший прогресс - подтяните основы (можно на learn.javascript.ru)
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
14 авг. 2018, в 22:43
350 руб./за проект
14 авг. 2018, в 19:03
10000 руб./за проект
14 авг. 2018, в 18:10
1000 руб./в час