2016-10-09 18 views
0

내가는 JS 구성 요소가

내가 의한 생산이라는 플러그인을 적용하여

var textarea = React.createClass({ 
    render : function(){ 
     return <textarea id="mytextarea"></textarea>; 
    } 
}); 

내가이 텍스트 영역의 자동 크기 조정을 원하는 반응이 텍스트 영역이 있다고 가정 아래로 JQuery와 반응 협력 할 jQuery 플러그인을 듣지 반작용 "autosize", 그래서 나는 이것을했다;

$("#mytextarea").autosize(); 

ReactDOM.render(<textarea/>, document.getElementById('form')); 

참고 : 정상적인 텍스트 영역을 만들면 (플러그인 DOM은 반응하지 않음) 플러그인이 작동합니다. 이지만 반응 성분은 함유하지 않습니다.

+0

id 대신 'className = "mytextarea"및 jQuery를 사용하는 ".mytextarea"를 사용하십시오. –

답변

1

$("#mytextarea").autosize();을 호출 할 때 텍스트 영역이 렌더링되지 않으므로 아직 실제로 존재하지 않습니다. React의 componentDidMount() 메서드에서 .autosize() 메서드를 호출하는 것이 성공적 일 수 있습니다.이 메서드는 구성 요소가 렌더링 된 후에 호출됩니다.

var textarea = React.createClass({ 
    componentDidMount: function() { 
    $("#mytextarea").autosize(); 
    }, 
    render : function(){ 
    return <textarea id="mytextarea"></textarea>; 
    } 
}); 
관련 문제