因此,我正在练习用 Java 制作本机模块,这些模块可以将函数暴露给 React Native 的 JavaScript 代码。为此,我决定使用一个简单的演示数学库。我的代码如下。
MathOpsModule.java
package com.mb_rn_poc;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
public class MathOpsModule extends ReactContextBaseJavaModule {
@Override
public String getName() {
return "MathOps"; // Name of the Native Modules.
}
@ReactMethod
public int add(int a, int b) {
return (a + b);
}
}
Run Code Online (Sandbox Code Playgroud)
MathOpsPackage.java
package com.mb_rn_poc;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MathOpsPackage implements ReactPackage {
@Override
public List<ViewManager> createViewManagers(
ReactApplicationContext reactContext
) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个简单的示例项目,其中用户在单击按钮后会使用 React 重定向到“联系”页面。我试图通过设置状态属性的值来实现这一点。当我运行我的代码时,它确实将浏览器地址栏 URL 更改为联系页面的 URL,但似乎并未实际加载该组件 - 我得到的是一个空白页面。如果我手动导航到该 URL ( http://localhost:3000/contact ),我可以看到内容。
这是我的App.js和Contact.js文件 -
应用程序.js
import React, { Component } from 'react';
import { BrowserRouter as Router, Switch, Route, Link, Redirect } from 'react-router-dom';
import Contact from './Contact';
class App extends Component {
state = {
redirect: false
}
setRedirect = () => {
this.setState({
redirect: true
})
}
renderRedirect = () => {
if (this.state.redirect) {
return <Redirect to='/contact' />
}
}
render() {
return …Run Code Online (Sandbox Code Playgroud) 我是 React 新手,我看到的大多数有关使用 React Router 进行重定向的教程似乎都在使用上述代码片段。我想要实现的目标是在成功登录后将用户重定向到我网站的主页。我尝试过history.push,但根据我的谷歌搜索,它不再在路由器v4中工作。我可以做什么作为替代方案?我对有状态和无状态解决方案持开放态度。
为了澄清这一点,这是工作流程 -