2015-12-13 24 views
5

Tôi có một ScrollView ở dạng gốc tự do và có nhiều Chế độ xem. Tôi lưu trữ các ref để xem bằng cách sử dụng đoạn mã sauphản ứng: Gọi phương thức của thành phần con từ thành phần gốc

cards.push(
    <Card 
    ref={(ref) => { 
     console.log(ref); 
     this.cardRef[index] = ref; 
     ref.testMethod(); 
    }} /> 
); 

Thẻ là một thành phần riêng biệt mà trông như thế này:

Tuy nhiên nó nói rằng TestMethod được undefinded, không thể gọi ref.testMethod().

Trả lời

3

tôi chơi với mã của bạn trên jsfiddle, và có vẻ như phương pháp trẻ được gọi là:

var Card = React.createClass({ 
    testMethod() { 
    console.log('this.is.test.method'); 
    }, 
    render() { 
    return (
     <h1>this is a card.</h1> 
    ) 
    } 
}); 

var Parent = React.createClass({ 
    render: function() { 
     return <div><Card ref={(r) => {r.testMethod()}}/></div>; 
    } 
}); 

ReactDOM.render(
    <Parent />, 
    document.getElementById('container') 
); 

https://jsfiddle.net/vq110d69/

+0

Bằng cách nào đó mã cũng đang làm việc cho tôi khi thử với dự án mẫu về rnplay: https : //rnplay.org/apps/tAeu6g. Nhưng không phải trong ứng dụng hiện tại của tôi. Sẽ phải tự kiểm tra vấn đề. Cảm ơn bạn đã trả lời. – meteors

Các vấn đề liên quan