Redux:使用嵌套属性

时间:2016-05-31 17:55:34

标签: javascript reactjs redux

我有一个侧边栏的简单容器。它看起来如下:

import Sidebar from '../components/sidebar';
import Actions from '../actions/sidebar';

export default connect(function mapStateToProps(state) {
  return {
    sidebar: state.sidebar,
    device: state.device
  }
}, function mapDispatchToProps(dispatch) {
  return {
    sidebar: bindActionCreators(Actions, dispatch)
  }
}, function mergeProps(state, dispatch) {
  return { state, dispatch }
})(Sidebar);

当我在我的组件实例上记录this.props时,它似乎完全按预期工作。但是,当我尝试在this.props.state中引用嵌套属性时,尽管状态发生了变化(完全确认状态发生了变化),但它似乎没有被动地更新。

import React, { Component, PropTypes } from 'react';
import Drawer from 'material-ui/Drawer';

export default class Sidebar extends Component {
  render() {
    const {
      state:   { sidebar: { open } },
      actions: { sidebar: { toggle } }
    } = this.props;

    return (
      <Drawer open={open}>
        // ....
      </Drawer>
    )
  }
}

当我在状态之外创建一个平面结构时,它似乎完全按照预期工作,但是当我在上面的示例中嵌套open布尔值时,它永远不会更新,尽管状态正在适当更新。 / p>

如何使用react和redux在我的connect函数中使用嵌套状态属性?

0 个答案:

没有答案