Как получить реквизиты для обновления в redux, используя переменную вне `return`? - PullRequest
0 голосов
/ 12 ноября 2018

Я использую React и Redux для создания веб-сайта, и у меня есть код ниже для AppInfo компонента.У меня есть result переменная в методе render, который инициализируется перед оператором возврата.Сначала result является пустой строкой, но как только состояние изменяется, ему присваивается объект, который содержит различные атрибуты приложения.Я хочу отобразить переменную result внутри div.result всегда остается пустой строкой, хотя я вижу, что состояние избыточности обновляется.Кроме того, если позвонить напрямую this.props.appId внутри div, действительно отображается обновленное состояние.Почему переменная результата не работает?

Это мой код:

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { connect } from 'react-redux';

class AppInfo extends Component {

  render() {
    const { appInfo } = this.props;
    const { appId } = appInfo;
    let result = '';

    if (appId) {
      result = JSON.stringify(appInfo);
    }

    return (
      <div>
        {result}
        {`JSON.stringify(appInfo) = ${JSON.stringify(appInfo)}`}
        {`this.props = ${JSON.stringify(this.props.appInfo)}`}
      </div>
    );
  }
}

AppInfo.propTypes = {
  appInfo: PropTypes.object.isRequired
};

const mapStateToProps = state => ({
  appInfo: state.app
});

export default connect(mapStateToProps, null)(AppInfo);

1 Ответ

0 голосов
/ 13 ноября 2018

Не могли бы вы попробовать result = JSON.stringify(this.props.appInfo);?

Я думаю, что проблема может быть связана с первыми двумя константами, которые вы создаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...