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

假设我有一个List包装的React组件(称为createContainer):

class List extends Component {
  render() {
    return (
      ...
    );
  }
}
export default createContainer({
  ...
}, List);
List有一个来自父级的 Prop :activeListId

我使用createContainer订阅,但是我需要在该订阅中传递一个参数。该参数为activeListId值。
export default createContainer({
  Meteor.subscribe('ListItems', this.props.activeListId);
  return {
    ...
  }
}, List);

因此,我需要访问createContainer代码内的原始组件的props。太奇怪了,但是我做不到! this中的createContainer上下文与this中的List不同。

谁知道如何做到这一点?

最佳答案

作为第一个参数,createContainer应该接收一个以props作为参数的函数。因此,您需要执行以下操作:

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

10-04 15:18