如何访问 CreateContainer 中的原始道具?

How to access original props inside CreateContainer?

我有一个非常简单但可怕的问题。

比方说,我有一个由 createContainer:

包装的 React 组件(称为 List
class List extends Component {
  render() {
    return (
      ...
    );
  }
}
export default createContainer({
  ...
}, List);

List 有一个来自 parent 的道具:activeListId.

我使用createContainer订阅订阅,但我需要在该订阅中传递一个参数。参数为activeListId值。

export default createContainer({
  Meteor.subscribe('ListItems', this.props.activeListId);
  return {
    ...
  }
}, List);

所以我需要在 createContainer 代码中访问原始组件的道具。这太奇怪了,但我不能这样做! this createContainer 中的上下文与 List 中的 this 不同。

谁知道如何实现?

作为它的第一个参数,createContainer 应该接收一个以 props 作为参数的函数。所以你需要这样做:

export default createContainer(props => {
  Meteor.subscribe('ListItems', props.activeListId);
  return {
    ...
  }
}, List);