这是我在 StackOverflow 上的第一篇文章,如果我没有遵循正确的格式,我深表歉意。
我正在构建我的第一个应用程序,tab navigator from React Navigation v 5.x并且在将道具从一个屏幕传递到另一个屏幕时遇到了一个大问题
我想要实现的是:
我已经尝试过这个(我没有设置道具传递下去),这个(react-navigation 的弃用版本)和这个(react-navigation 的旧版本)。
和 Redux,但当前版本的 React 导航没有可用的示例。
我已经对此束手无策了,真的需要逐步了解如何实现这一目标。这是我想要做的粗略草图:
我想到的方法是通过回调将父状态作为道具发送下来,但是我找不到通过最新版本的反应导航中的屏幕组件发送道具的方法......
这是我的导航设置:
const Tab = createBottomTabNavigator()
export default class MyApp extends Component{
constructor(props) {
super(props);
}
render(){
return (
<NavigationContainer>
<Tab.Navigator
screenOptions={({ route }) => ({
tabBarIcon: ({ focused, color, size }) => {
let iconName;
if (route.name === 'My tests') {
iconName = focused ? 'ios-list-box' : 'ios-list';
} else …Run Code Online (Sandbox Code Playgroud) parameter-passing reactjs react-native react-redux react-props
介绍
\n我用 制作了一个VOIP 拨号器应用程序react-native。我正在使用react-native-callkeep在接到电话时向用户显示默认的IOS呼叫屏幕(在后台和前台),并且我正在使用react-native-push-notification弹出本地通知当接到电话时。
问题
\n当我最小化应用程序(使用主页按钮)并且应用程序收到呼叫时,它不会显示本地通知或呼叫屏幕。\n但是,如果在最小化操作之后立即接到呼叫,则屏幕和通知出现。
\n对所发生情况的技术解释
\n阅读日志,我发现 IOS 在打印以下行时终止了我的应用程序后台处理:
\n15:08:23.085311-0300 symptomsd com.vmaxtelecom.vmaxfone: Foreground: false
此后,前景或背景都不起作用
\n代码解释
\n也许问题不在于react-native-callkeep或react-native-push-notification本身(因为它们按预期工作)。我认为这是 IOS 本身的问题。
\n我发现这个线程准确地定义了我身上发生的事情。
\n我启用的功能
\n\n我正在使用什么
\nreact-native version 0.61.5
Xcode version 11.5 (11E608c) on a MacOS 10.15.5 Catalina
IOS 13.4.1 on a Iphone 8
I\'m using a release version of my project (The debug …
因此,我正在开发一个IOS VOIP 应用程序,并发现我需要使用推送通知服务器来使我的应用程序在后台工作以接收来电等。
我搜索后没有找到任何关于如何设置、开发、使用、查找推送通知服务器/网关的信息
我找到了一些付费服务器,但对我没有任何帮助,因为我现在无法付款。
我很抱歉写了一个完全由文本组成的问题,没有代码,但现在没有代码可以使用。
是的,我阅读了文档、文章等,但他们只是谈论“设置你的服务器并向 apns 发送推送”,对于我应该使用什么或如何设置服务器没有任何有用的信息。
这是我已经发现的:
如何创建可以接收 VoIP 推送通知的本机 iOS 应用程序
如果不存在推送通知服务器/网关的非付费替代方案,是否可以通过最新的 IOS 更改来解决此问题?(我在这里找到了类似 Zoiper 团队所说的解决方法)
提前致谢!
[编辑]
解决方案是使用 Flexisip 代理服务器。
我正在使用与 axios 的反应来获取一些信息。我正在向 auth 用户发送 JWT 令牌,并在控制台浏览器中收到响应
“从源'http://localhost:3000' 访问 XMLHttpRequest at 'https://beer-tonight.herokuapp.com/beer/getBeerStatus' 已被 CORS 策略阻止:Access 不允许请求标头字段授权-预检响应中的 Control-Allow-Headers。”
这是我的代码:
componentWillMount(){
let token = localStorage.getItem('token');
axios.get('https://beer-tonight.herokuapp.com/beer/getBeerStatus', {headers: {Authorization : 'Bearer ' + token}}).then(
result => {
console.log('yey');
});
}
Run Code Online (Sandbox Code Playgroud)
错误:
当我使用 POSTMAN 时,我得到了正确的答案。
邮递员输入:
ps我已经添加了:
app.use((req, res,next)=>{
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorisation');
next();
Run Code Online (Sandbox Code Playgroud) 我使用vite搭建了一个react环境。当我从模块导入 GLTFLoader 时,vite 命令行提到:
Vite错误,/node_modules/.vite/deps/third_examples_jsm_loaders_GLTFLoader.js?v=9d4ee121应该定义优化信息
这是我的代码:
import * as Three from "three"
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'
[...]
const gltfLoader = new GLTFLoader()
gltfLoader.setPath('public/')
gltfLoader.load('000.hdr', gltf => {
gltf.scene.scale.set(0.2,0.2,0.2)
scenes.add(gltf.scene)
})
Run Code Online (Sandbox Code Playgroud)
react-native ×3
reactjs ×3
ios ×2
axios ×1
node.js ×1
objective-c ×1
pushkit ×1
react-props ×1
react-redux ×1
rest ×1
three.js ×1
vite ×1
xcode ×1