是否可以从 Redux 存储中检索特定评论的状态
is it possible to retrieve state from Redux store for a particular review comments
我确实有一个带有状态的 React class 组件。
class NewComponent extends Component {
state = {
modalIsOpen: false,
aa: true,
bb: false,
cc: false,
dd: false,
ee: 1,
dd: [],
cc: [],
ff: [],
gg: [],
vv: [],
bb: '',
rr: '',
bb: '',
axcx: 'recent',
zxc: null,
asd: [],
qwe: '',
asd: '',
xc: false,
wxc: false,
zxcc: null,
zxcxzc: [],
zxc: {},
zxc: false,
zxc: [],
zxc: null,
zxc: '',
imgGroup: aa.imgGroup,
videoGroup: xx.videoGroup,
docGroup: vv.docGroup,
}
}
是否可以将这些状态存储在存储中的某个位置并将其导入此 component.if 所以你们可以帮助我这样做吗?我是 redux 的新手。
任何帮助都会非常有帮助
你不应该在组件内部有状态,但如果你想要它,你需要有两个东西,一个动作和一个减速器。在减速器中,您只需设置状态
dispatch(createState(state))
你需要在你的组件中添加它,但我强烈建议不要这样做。所以正确的方法是创建你 reducer.js 并在那里添加这个状态。
const myReducer = (initialState = state, action) => {
switch (action.type) {
....
}
};
因此,当您创建减速器时,只需将初始状态传递到那里即可。希望对您有所帮助!
这很容易做到。您需要做的是将 reducer 中的这些变量添加到相应的商店(我们将商店称为 youstore)。
Reducer.js
const initialState = {
modalIsOpen: false,
aa: true,
bb: false,
cc: false,
dd: false,
ee: 1,
dd: [],
cc: [],
ff: [],
gg: [],
vv: [],
bb: '',
rr: '',
bb: '',
axcx: 'recent',
zxc: null,
asd: [],
qwe: '',
asd: '',
xc: false,
wxc: false,
zxcc: null,
zxcxzc: [],
zxc: {},
zxc: false,
zxc: [],
zxc: null,
zxc: ''
}
export default (state = initialState, action) => {
switch (action.type) {
case SOME_ACTION:
......
}
现在,这应该可以作为道具从您的组件中获得。为此应该使用 mapStateToProps 方法。
Your_component.jsx
const mapStateToProps = state => {
return {
modalIsOpen: state.youstore.modalIsOpen,
aa: state.youstore.aa,
bb: state.youstore.bb,
cc: state.youstore.cc,
dd: state.youstore.dd,
.......
};
};
const mapDispatchToProps = dispatch => {
return {
someMethod: data => dispatch(somemethod(data)),
};
};
export default connect(
mapStateToProps,
mapDispatchToProps
)(your_Component);
要更改状态的值,您必须通过 mapDispatchToProps 调度一个动作
我确实有一个带有状态的 React class 组件。
class NewComponent extends Component {
state = {
modalIsOpen: false,
aa: true,
bb: false,
cc: false,
dd: false,
ee: 1,
dd: [],
cc: [],
ff: [],
gg: [],
vv: [],
bb: '',
rr: '',
bb: '',
axcx: 'recent',
zxc: null,
asd: [],
qwe: '',
asd: '',
xc: false,
wxc: false,
zxcc: null,
zxcxzc: [],
zxc: {},
zxc: false,
zxc: [],
zxc: null,
zxc: '',
imgGroup: aa.imgGroup,
videoGroup: xx.videoGroup,
docGroup: vv.docGroup,
}
}
是否可以将这些状态存储在存储中的某个位置并将其导入此 component.if 所以你们可以帮助我这样做吗?我是 redux 的新手。
任何帮助都会非常有帮助
你不应该在组件内部有状态,但如果你想要它,你需要有两个东西,一个动作和一个减速器。在减速器中,您只需设置状态
dispatch(createState(state))
你需要在你的组件中添加它,但我强烈建议不要这样做。所以正确的方法是创建你 reducer.js 并在那里添加这个状态。
const myReducer = (initialState = state, action) => {
switch (action.type) {
....
}
};
因此,当您创建减速器时,只需将初始状态传递到那里即可。希望对您有所帮助!
这很容易做到。您需要做的是将 reducer 中的这些变量添加到相应的商店(我们将商店称为 youstore)。
Reducer.js
const initialState = {
modalIsOpen: false,
aa: true,
bb: false,
cc: false,
dd: false,
ee: 1,
dd: [],
cc: [],
ff: [],
gg: [],
vv: [],
bb: '',
rr: '',
bb: '',
axcx: 'recent',
zxc: null,
asd: [],
qwe: '',
asd: '',
xc: false,
wxc: false,
zxcc: null,
zxcxzc: [],
zxc: {},
zxc: false,
zxc: [],
zxc: null,
zxc: ''
}
export default (state = initialState, action) => {
switch (action.type) {
case SOME_ACTION:
......
}
现在,这应该可以作为道具从您的组件中获得。为此应该使用 mapStateToProps 方法。
Your_component.jsx
const mapStateToProps = state => {
return {
modalIsOpen: state.youstore.modalIsOpen,
aa: state.youstore.aa,
bb: state.youstore.bb,
cc: state.youstore.cc,
dd: state.youstore.dd,
.......
};
};
const mapDispatchToProps = dispatch => {
return {
someMethod: data => dispatch(somemethod(data)),
};
};
export default connect(
mapStateToProps,
mapDispatchToProps
)(your_Component);
要更改状态的值,您必须通过 mapDispatchToProps 调度一个动作