Я использую 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);