Разбуди спящие реагирующие компоненты в реагируй - PullRequest
0 голосов
/ 19 января 2020

У меня есть приложение с несколькими вкладками, когда я нажимаю вкладку в первый раз, все хорошо рендерится из магазина приставок. Но когда я переключаю вкладки и возвращаюсь к первой вкладке, компоненты перестают обновляться. Данные там, когда я консоль войти. Интересно, что флажки определенно не обновляются, но TextField обновляется, за исключением того, что они выглядят странно, даже если в них есть данные; метка TextField покрывает значение. Вот пример с флажком (я показываю только часть кода, в противном случае вы можете убежать из этого поста, так как он будет слишком длинным), но в основном есть выпадающее меню с кучей данных, полученных из топора ios получить вызов и в зависимости от того, какой из них выбран, флажок устанавливается в значение true или false. Но после того, как вы покинете вкладку и вернетесь к ней, а затем снова выберете ее из выпадающего меню, флажок не сработает, если я не нажму на него. То же самое касается TextFields, если я наберу, то они "проснуться".

Компонент:

import React from 'react';
import { connect } from 'react-redux';
import * as ExampleAction from '../../../../../actions/exampleAction';
import TextField from '@material-ui/core/TextField';
class ReactReduxExample extends React.Component {
    constructor(props) {
        super(props);
    }
    handleCheckBoxChange = e => {
        this.props[e.target.name](e.target.checked);
    }
    render() {
        const {
            handleCheckBoxChange,
        } = this;
        return (
            <div>
                    <TextField
                        select
                        name="var1Change"
                        onChange={handleCheckBoxChange}
                        value={this.props.exampleReducer.var1}
                    />
            </div>
        )
    }
}
const mapStateToProps = (state, ownProps) => {
    return {
        exampleReducer: state.exampleReducer
    }
};
const mapDispatchToProps = (dispatch) => {
    return {
        var1Change: var1 => dispatch(ExampleAction.var1Change(var1)),
    }
};
export default connect(mapStateToProps, mapDispatchToProps)(ReactReduxExample );

Редуктор:

const var1ChangeType = VAR_1_CHANGE';
const initialState = {
    var1: false,
};
export const actionCreators = {
    var1Change: () => ({ type: var1ChangeType }),
};
export default (state, action) => {
    state = state || initialState;
    if (action.type ===var1ChangeType) {
        return { ...state, var1: action.var1 };
    }
    return state;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...