【发布时间】:2019-01-31 01:02:43
【问题描述】:
当组件通过 Redux 操作更改时,ques 似乎已输入并且提醒已更改。但是,如果从另一个组件导入mapStateToProps,则该值不会更改,并且只会输入空值。为什么? This is my github
组件/投票
import { combineReducers } from 'redux';
import { INFOMATION } from "../actions";
const postInitialState ={
id: '',
ques: '',
ans1: '',
ans2: ''
};
const postInfomation = (state = postInitialState, action) => {
switch (action.type) {
case INFOMATION:
console.log(state)
return Object.assign({}, state, {
id: action.id,
ques: action.ques,
ans1: action.ans1,
ans2: action.ans2
});
default:
return state
}
};
const postApp = combineReducers({
postInfomation
});
export default postApp;
reducer/投票
import React, {Component, Fragment} from 'react';
import { connect } from 'react-redux';
class Vote extends Component {
render() {
return (
<Fragment>
<h1>qwe</h1>
<h1>{this.props.id}</h1>
<h1>{this.props.ques}</h1>
</Fragment>
)
}
}
let mapStateToProps = (state) => {
console.log(state)
return {
id: state.postInfomation.id,
ques: state.postInfomation.ques,
ans1: state.postInfomation.ans1,
ans2: state.postInfomation.ans2
};
}
Vote = connect(mapStateToProps) (Vote);
export default Vote;
【问题讨论】:
-
“值不变,只输入空值”是什么意思?此外,您在代码的某些部分使用
qus而不是ques,这可能会导致问题。 -
进入 github 可以看到,没有错别字的错误。当你作用于A组件,reducer改变了ques值,你在B组件中通过mapStateToProps导入值时,它不会改变。