2017-11-03 6 views
0

나는 여기 react-native에 대해 이야기하지 않습니다.React.js webview와 원시 코드 간을 통신 하시겠습니까?

네이티브 및 자바 스크립트가 포함 된 하이브리드 앱입니다.
우리가 사용하고있는 Javascript 라이브러리는 React.js입니다.

우리는 백본을 비슷한 설정으로 사용했으며 native와 js world간에 메시지 전달에 문제가 없었습니다.

js와 대화하기 위해 페이지에서 전역 변수 (Backbone View 인스턴스)를 노출했습니다.

그래서 우리는 window.login_view.do_login()과 같은 것을 할 수 있습니다.

login_view 인스턴스가 있었기 때문에 가능했습니다.

react.js를 사용하면 다음과 같은 코드가 생겼기 때문에 어떻게 그런 인스턴스를 만들 수 있을지 모르겠지만 참조 할 수있는 코드는 instance입니다.

ReactDOM.render(
    <Provider store={store}> 
    <Router> 
     <Article/> 
    </Router> 
    </Provider>, 
    document.getElementById('mainApp') 
) 

네이티브 측에서 하이브리드 앱에서 react.js와 대화하는 방법은 무엇입니까? 기사 클래스에

... 
<Article ref={(article) => { this._article = article; }} /> 
... 

:

+0

당신합니다. 자바 스크립트에서 전역 적으로 사용할 수있는 객체 또는 함수를 사용하고 있다면 반드시 React 구성 요소에 액세스 할 수 있어야합니다. 'window.login_view.do_login()'은 전역 적으로 액세스 가능한 함수처럼 보입니다. – TKoL

+0

공급자는 JS 클래스이므로 "refref"를 사용하여 창 개체에 전역 변수로 저장하는 클래스 속성을 정의 할 수 있습니다 (componentdidMount에서이 작업을 수행 할 수 있습니다.) –

답변

0

심판을 사용

componentDidMount: function() { 
    window.globaVarArticle = this._article; 
} ... 

이제 window.globaVarArticle를 사용하여 클래스 제공자의 방법에 액세스 할 수 있습니다 [methodName로]

+0

공급자 및 라우터는 보조 클래스입니다. 공급자는 반응 라우터에서 redux, 라우터에서 비롯됩니다. 제 자신의 클래스는'Article'입니다. Article 인스턴스의 메소드에 어떻게 액세스 할 수 있습니까? – eugene

+0

답변을 업데이트했습니다! 그것은 내가 처음에 썼던 것과 같습니다! 기사 클래스에 대한 참조 이동하기 –