Как использовать redux и реагировать на рендеринг динамически рассчитанных данных с помощью функции из refux?Более подробно: я пытаюсь сделать таблицу с двумя столбцами (имя, доля).Имя происходит от entity.name, а доля вычисляется с использованием entity.id и удаленного сервиса.В настоящее время у меня есть динамически отображаемая таблица со строками для каждой сущности с ее именем, но я не могу передать вычисленные данные по entity.id.
Я пытался использовать для этого избыточное действие, но теперь я понимаю, что избыточное значениеaction не возвращает никакого значения, но изменяет состояния в своем хранилище.Код, который я предоставил ниже с использованием {calcShare (entity.id)}, выдает ошибку, что возвращает массив {type, payload}.Другой вариант может состоять в том, чтобы построить массив ключ / значение в избыточном хранилище и использовать его в таблице реагирования, получив значение массива, используя entity.id в качестве ключа, но я не уверен, как это сделать правильно в коде редуктора и реагирования.
Редуктор выглядит следующим образом:
export const getCalculatedShareById: IPayloadResult<String> = id => {
const requestUrl = `${apiUrl}/${id}/calculated-share`;
return {
type: ACTION_TYPES.FETCH_ENTITY_CALCULATED_SHARE,
payload: axios.get<String>(requestUrl)
};
};
Мой пример реакции для домашней страницы с использованием редуктора:
export class Home extends React.Component {
componentDidMount() {
this.props.getEntities();
}
render() {
const { entitiesList, getCalculatedShareById } = this.props;
return (
<Row>
<Col>
<Table>
<thead>
<tr>
<th>Name</th>
<th>Share</th>
</tr>
</thead>
<tbody>
{entitiesList.map((entity, i) => (
<tr key={`entity-${i}`}>
<td>{entity.name}</td>
<td>{getCalculatedShareById(entity.id)}</td>
</tr>
))}
</tbody>
</Table>
</Col>
</Row>
);
}
}
const mapStateToProps = storeState => ({
entitiesList: storeState.myReducer.entities
});
const mapDispatchToProps = { getEntities, getCalculatedShareById};
type StateProps = ReturnType<typeof mapStateToProps>;
type DispatchProps = typeof mapDispatchToProps;
export default connect(
mapStateToProps,
mapDispatchToProps
)(Home);
Пожалуйста, помогите мне понять, как лучше всего решить такиепроблема и приведите несколько примеров, если это возможно.