0
我想在我的佈局組件中傳遞道具和調用動作。當我嘗試用下面的代碼來完成時,只傳遞初始狀態。 redux商店中的更改未反映出來。將應用商店傳遞給應答路由器redux中的佈局組件?
這是啓動應用程序的代碼。
ReactDOM.render(
<AppContainer>
<Provider store={ store }>
<ConnectedRouter history={ history } >
<Layout prop={store.getState()}>
<Route exact path='/' component={ Dashboard } />
<Route path='/workorder' component={ WorkOrder } />
<Route path='/programs' component={ Programs } />
<Route path='/departments' component={ Departments } />
<Route path='/users' component={ Users } />
<Route path='/fetchdata/:startDateIndex?' component={ FetchData } />
</Layout>
</ConnectedRouter>
</Provider>
</AppContainer>,
document.getElementById('react-app')
);
這是佈局頁面的代碼。
interface LayoutProps{
prop: any;
}
export class Layout extends React.Component<LayoutProps, {}> {
public render() {
console.log(this.props);
return <div>
<Header/>
<div id="wrapper">
<NavMenu/>
{ this.props.children }
</div>
</div>;
}
}
我的控制檯日誌只打印初始狀態。我不知道爲什麼它沒有得到更新。我只有這個問題的佈局。路線中定義的所有其他組件都使用「連接」進行連接並正常工作。
編輯:這是更新的代碼:
ReactDOM.render(
<AppContainer>
<Provider store={ store }>
<ConnectedRouter history={ history } >
<Layout>
<Route exact path='/' component={ Dashboard } />
<Route path='/workorder' component={ WorkOrder } />
<Route path='/programs' component={ Programs } />
<Route path='/departments' component={ Departments } />
<Route path='/users' component={ Users } />
<Route path='/fetchdata/:startDateIndex?' component={ FetchData } />
</Layout>
</ConnectedRouter>
</Provider>
</AppContainer>,
document.getElementById('react-app')
);
這是佈局的代碼:
export class Layout extends React.Component<any, {}> {
public render() {
console.log(this.props);
return <div>
<Header/>
<div id="wrapper">
<NavMenu/>
{ this.props.children }
</div>
</div>;
}
}
export default connect(
(state: ApplicationState) => state.users, // Selects which state properties are merged into the component's props
UsersStore.actionCreators.getCurrentUser // Selects which action creators are merged into the component's props
)(Layout) as typeof Layout;
但只有props.children可用的面板組件中。所有其他道具都是未定義的,即使我通過state.users,UsersStore.actionCreators.getCurrentUser。基本上它不會採取任何從REDX存儲(即使在任何數量的重新渲染)。
請查看更新的問題。我試圖連接佈局。但所有的道具都是未定義的,除了來自路由器的props.children我猜。我在這裏看看你的答案(沒有幫助)。 https://stackoverflow.com/questions/43502291/typescript-redux-exclude-redux-props-in-parent-component –