Я пытаюсь передать некоторую поддержку компоненту без состояния для моих потребностей условного рендеринга. При присвоении значения состояния редукции моей переменной в connect()
, например var: state.reducer.var
, я не получаю объект «state.reducer.var». Вместо этого я получаю весь объект состояния.
Когда console.log(state.reducer.var)
в connect() в качестве обратного вызова, я получаю ожидаемый результат - значение var. Хотя, когда console.log(var)
в качестве обратного вызова передает ему мою только что назначенную переменную, я получаю объект, который я получил бы, когда console.log(state)
.
В моем дочернем компоненте я получаю undefined
, используя свою переменную как props.var
const _ProtectedRoute = ({ component: Component, ...rest }, props) => {
return (
<Fragment>
{!props.isAuthed
? <Redirect to="auth" noThrow />
: <Component {...rest} />
}
</Fragment>
);
}
const ProtectedRoute = connect(
(state) => ({
isAuthed: state.user.isAuthed,
}, (isAuthed) => {console.log('state value: ', isAuthed)})
)(_ProtectedRoute);
Я ожидаю, что моя переменная, которой я назначил состояние редукции, будет передана моему компоненту _ProtectedRoute
без сохранения состояния в качестве реквизита, чтобы я мог использовать его в условном выражении.
connect
не является обратным вызовом; это объект (или функция, возвращающая объект), содержащий карту имен реквизита для функций создания действий Redux. - person Dan O   schedule 02.05.2019