componentDidMount无法从父组件接收道具

时间:2017-07-03 11:33:17

标签: javascript reactjs ecmascript-6

假设父组件" A"和儿童组成部分" B"。组件" A"进行Ajax调用。

我无法从" A"中获得道具价值。到了" B"' componentDidUpdate,为什么会这样?

基本上我想做像这样的滚动检测事件

componentDidMount() {
    $('#container').on('scroll', function() {
        if(Math.ceil($(this).scrollTop() + $(this).height()) === $(this)[0].scrollHeight) {
            if(this.props.items.length < this.props.itemTotal) {
                fetchItems(this.props.items.length)
            }
        }
    })
}

this.props.items.length未定义?我可以在nextProps.items方法中获得componentWillRecieveProps的值吗?

1 个答案:

答案 0 :(得分:3)

scroll事件处理函数中,this指的是#container元素。在进入处理程序之前,您可以存储对组件的引用。

componentDidMount() {
    var thisComponent = this;
    $('#container').on('scroll', function() {
        if(Math.ceil($(this).scrollTop() + $(this).height()) === $(this)[0].scrollHeight) {
            if(thisComponent.props.items.length < thisComponent.props.itemTotal) {
                fetchItems(thisComponent.props.items.length)
            }
        }
    })
}