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

时间:2016-08-12 04:28:19

标签: meteor reactjs react-jsx meteor-react

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

让我们说,我有一个由List包裹的React组件(名为createContainer):

class List extends Component {
  render() {
    return (
      ...
    );
  }
}
export default createContainer({
  ...
}, List);

List有一个来自父母的道具:activeListId

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

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

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

谁知道如何实现这一目标?

1 个答案:

答案 0 :(得分:8)

作为第一个参数,props应该接收一个以export default createContainer(props => { Meteor.subscribe('ListItems', props.activeListId); return { ... } }, List); 为参数的函数。所以你需要这样做:

var timerHandle = setInterval(function () {
/* ... code ...*/
if (--timer < 0) {
    clearInterval(timerHandle);
    alert("I am an alert box!");
    //window.location = "http://www.google.com";
}
});