Я пытаюсь получить реквизит от MapsStateToProps через соединение response-redux, а затем передать его дочернему компоненту. Эта опора используется в качестве аргумента для функции, функция отвечает за возвращение чего-либо, после чего что-то становится состоянием дочернего компонента.
Я знаю, что реквизиты обновляются, потому что они отображаются в дочерний компонент, однако в том месте, где он используется в качестве аргумента, он не обновляется сразу. Я должен перейти к другому компоненту (реакции-маршрутизаторы), а затем вернуться к исходному компоненту, чтобы увидеть желаемый результат в результате функции с использованием реквизита.
Есть ли способ, чтобы изменение произошло, не переходя на другой компонент, а затем возвращаясь? Очевидно, я делаю что-то не так, или , что я пытаюсь сделать, не так ли? Любые советы?
import React, { Component } from 'react';
import {connect} from "react-redux";
import filterData from "../../States/AllStates/filterData"
import BookComponent from "./BookComponent";
const mapStateToProps = state => {
return {
fmlProps: state.ReducerName.fmlProps
}
};
class Testing extends Component {
state = {
// this.props.fmlPropsdoesn't work right away. You need to go away then come back
// to see the desired result, which I want to avoid
XXX: filterData(this.props.fmlProps)
}
render() {
return (
<>
<h1>{this.props.fmlProps}</h1> {/* this show up correct */}
{this.state.XXX.map(FakeData => (
<BookComponent
key={FakeData.planNumber}
PNum={FakeData.planNumber}
PName={FakeData.planName}
/>))}
</>
);
}
}
export default connect(mapStateToProps, null) (Testing);