2017-12-27 268 views
0

我试图在原生模块和JavaScript模块之间为原生应用程序构建一个回调函数示例应用程序。React Native中的回调

但它说的类回调canoot是found.I尝试使用下面的代码本机模块和JavaScript之间的通信: -

MyNativeClass.java

import com.facebook.react.bridge.CallBack; 


    @ReactMethod 
    public void getText(CallBack callback){ 
    callback.invoke('Hi From Java'); 
} 

MyJavaScript.js

export default class App extends Component<{}> { 
    NativeModule.getText(status) => { 
     console.log('Result',status); 
    } 
    render() { 
     return (
     <Text> 
     From Java { this.getText() } 
     </Text> 
     }}); 
    } 

该Java模块也被打包并被暴露

import { NativeModules } from 'react-native'; 
    module.exports = NativeModules.MyNativeClass; 

我试着干净,并建立以及但我仍面临同样的问题无法找到符号导入com.facebook.react.bridge.CallBack。

更新:我在新项目上也做了同样的事情,但导入CallBack库时出现同样的错误。

回答

0

检查你的build.gradle。应该有一条线:

dependencies { 
... 
compile "com.facebook.react:react-native:+" //or a version 
... 
} 

我建议你从一个新的项目开始,重试。错误似乎确实没有包含该库。

+0

感谢但同样的错误不仅回调,但桥包内的许多模块有这个问题。它被移动或包被重命名的任何帮助将不胜感激。 –

+0

只是想可能有两个问题: 1)在android studio中打开的项目不在<您的项目>/android文件夹下2)build.gradle在项目中,不包含maven {url“$ rootDir /。 ./node_modules/react-native/android“} – Han

+0

你会检查这些是否存在吗? – Han