Я использую избыточность в своих приложениях. есть только одно состояние, это определение. Я могу изменить состояние и сделать экран. но всякий раз, когда я изменяю состояние реквизита, я не могу перезагрузить экран.
Код:
остросюжетный types.js
export const SET_NOTIFICATION = "SET_NOTIFICATION";
action.js
import {
SET_NOTIFICATION,
} from "./action-types";
let initialState = {
notyIndex: 0,
};
export const setNotyIndex = (notyIndex) => ({type: SET_NOTIFICATION, notyIndex});
reducer.js
import {
SET_NOTIFICATION,
} from "./action-types";
let initialState = {
notyIndex: 0,
};
export default reducer = (state = initialState, action) => {
switch (action.type) {
case SET_NOTIFICATION:
return Object.assign({}, state, {notyIndex: action.notyIndex});
break;
default:
return initialState;
break;
}
};
Я подключаю редукс, как показано ниже. DashBoard.js
import { setNotyIndex } from "./action";
import {connect} from "react-redux"
********* НАЧАЛО ЖИЗНЕННОГО ЦИКЛА ************
componentWillMount(){
console.log('Call update');
console.log('Index is',this.props.notyIndex);
}
shouldComponentUpdate=()=>{
return true
}
componentDidUpdate=(prevProps, prevState, snapshot)=>{
console.log('Call update');
console.log('Index is',this.props.notyIndex);
}
componentDidMount() {
console.log('Call update');
console.log('Index is',this.props.notyIndex);
}
********* КОНЕЦ ЖИЗНИ ЦИКЛ ************
const mapDispatchToProps = (dispatch) => {
return {
setNotyIndex: (notyIndex) => dispatch(setNotyIndex(notyIndex)),
}
};
const mapStateToProps = (state) => {
if (state === undefined) {
return {};
}
return {
notyIndex: state.notyIndex,
}
};
connect(mapStateToProps, mapDispatchToProps)(DashBoard);
значение устанавливается как.
setNotyIndex(1);
- Как и в предыдущем коде, ни один метод жизненного цикла не вызывается после установки значения.
Спасибо.