容器应尽可能直接从州或从ownProps读取?

时间:2016-12-12 18:40:23

标签: reactjs redux react-redux

假设以下应用程序状态:

ownProps

从容器中填充表示组件的首选(或最好的,如果可能的话)是什么:尽可能直接从状态读取或从TodoItem from '../components/TodoItem'; const mapStateToProps = (state, ownProps) => { return { data: ownProps.data }; }; const mapDispatchToProps = (dispatch, ownProps) => { return { onComplete: () => {} } }; const TodoItemContainer = connect( mapStateToProps, mapDispatchToProps )(TodoItem); class TodoList extends Component { // ... render() { return this.props.items.map(item => { return <TodoItemContainer index={item.id} data={item} />; }); } } 读取?为什么呢?

从ownProps读取的示例:

import TodoItem from '../components/TodoItem';
const mapStateToProps = (state, ownProps) => {
  return { data: state.todos[ownProps.id] };
};
const mapDispatchToProps = (dispatch, ownProps) => {
  return { onComplete: () => {} }
};
const TodoItemContainer = connect(
  mapStateToProps,
  mapDispatchToProps
)(TodoItem);

class TodoList extends Component {
  // ...
  render() {
    return this.props.items.map(item => {
      return <TodoItemContainer index={item.id} id={item.id} />;
    });
  }
}

直接从州获取的示例:

String folderName=userId+"folder";
new File("/home/djordje/"+folderName).mkdirs();

1 个答案:

答案 0 :(得分:0)

两者都有效。如果您正在使用规范化数据,第二种方法特别有用,也可以改善性能。

有关详细信息,请参阅以下链接: