Javascript mapStateToProps初始值来自props,然后仅为state
我有一个反应组件,它有一些道具。这些道具是由MapStateTrops提供的Javascript mapStateToProps初始值来自props,然后仅为state,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有一个反应组件,它有一些道具。这些道具是由MapStateTrops提供的 const mapStateToProps = (state, {props}) => { return { feeds: props.feeds, feedEntries: props.feedEntries, .... 一旦用户开始与UI交互,他们就可以更改状态。此时,组件需要使用状态更新自身而不是道具 const mapStateToProps = (state
const mapStateToProps = (state, {props}) => {
return {
feeds: props.feeds,
feedEntries: props.feedEntries,
....
一旦用户开始与UI交互,他们就可以更改状态。此时,组件需要使用状态更新自身
而不是道具
const mapStateToProps = (state, {props}) => {
return {
feeds: state.feeds,
feedEntries: state.feedEntries,
....
如何引导
mapstatetops
函数在首次加载时直接使用组件的道具。然后,只声明它的数据状态?使用三元组检查状态属性是否为未定义的,并相应地获取属性值:
const mapStateToProps = (state = {}, props) => {
return {
feeds: state.feeds === undefined ? props.feeds : state.feeds,
feedEntries: state.feedEntries === undefined ? props.feedEntries : state.feedEntries,
....
如果您知道属性不会将falsy值(false、null、0等)作为合法值,则可以将三元替换为:
我建议您采取另一种方法,而不是中断
mapstatetops
函数流,您最好从道具获取内部值,然后将用户更改的值保存到状态,渲染函数应该支持它,并检查是否有任何用户数据已接收到,最后是否执行了以下操作
export default (initProps) => {
const combinedState = {
...defaultState,
...initProps,
};
return createStore(
reducer,
combinedState,
applyMiddleware(logger, thunk),
)
};
创建了一个包装createStore函数的函数。。它接受由1)组成的对象。主要组件的支柱(initProps)和2)defaultProps
-导入到此文件的JS对象,具有默认的存储形状,init props覆盖defaultProps中的任何值
export default (props) => {
const store = configStore(props);
return (
<Provider store={store}>
<Editor props={{ ...props }} />
</Provider>
)
}
导出默认值(道具)=>{
常量存储=配置存储(道具);
返回(
)
}
主要组件是接收道具,将这些道具传递给config store函数。商店是使用上面的组合对象构建的
export default (props) => {
const store = configStore(props);
return (
<Provider store={store}>
<Editor props={{ ...props }} />
</Provider>
)
}