我试图检测用户何时在反应原生应用程序中按下音量增大按钮.我没有直接在手机中使用任何媒体作为音乐或视频,我想将音量按钮用于不同的目的.例如:触发相机拍摄.
我正在开发的应用程序在所有其他版本的Android和iOS中运行良好,但网络功能真正以它为中心.
我没有额外的调试信息.但是有几个问题.
是react-native-tcp被称为主线程上?在这种情况下,它不会驱逐错误?https://developer.android.com/about/versions/nougat/android-7.0-changes.html
如果是这样,我怎么能在其他线程上使用它?
编辑:似乎你一次只能打开一个套接字,无论是UDP还是TCP,如果我试图并行打开它就不会让我们.
我希望能够使用其API将音乐发送到sonos.不幸的是,我知道的唯一方法是发送URI到设备,以便它可以下载它.
我已经访问过包react-native-httpserver.这个尚未在Android中测试过.所以我看看Android的nanoHTTPD和iOS中的其他类似软件包就像CocoaHTTPServer一样.
创建一个包装器来构建跨平台的东西应该不是很困难但是我想知道Javascript中是否有另一个解决方案或者在react-native-tcp上开发的一些工作
我升级到React Native v0.40并且一个完全正常工作的应用程序开始抛出该错误.
有线索吗?
这是我经过多次研究后发现的唯一文件https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java.
我已经使用像这样的猫鼬定义了一个模型:
var mongoose = require("mongoose")
var Schema = mongoose.Schema
var userObject = Object.create({
alias: String,
email: String,
password: String,
updated: {
type: Date,
default: Date.now
}
})
var userSchema = new Schema(userObject, {strict: false})
var User = mongoose.model('User', userSchema)
module.exports = User
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个用户,我可以通过mongo控制台完美找到这样的:
db.users.findOne({ email: "coco@coco.com" });
{
"_id" : ObjectId("55e97420d82ebdea3497afc7"),
"password" : "caff3a46ebe640e5b4175a26f11105bf7e18be76",
"gravatar" : "a4bfba4352aeadf620acb1468337fa49",
"email" : "coco@coco.com",
"alias" : "coco",
"updated" : ISODate("2015-09-04T10:36:16.059Z"),
"apps" : [ ],
"__v" : 0
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过带有mongoose的node.js访问此对象时,检索的对象不是这样的doc,而是包装器:
这段代码......
// Find the user …Run Code Online (Sandbox Code Playgroud) 我一直在研究SVG和React的数据表示形式,它们似乎很合适。但是React尚不支持SVG,并且https://github.com/facebook/react/issues/2250尚不存在插件。
但是,有一些变通方法,例如dangerouslySetInnerHTML用于某些元素,就我而言,我还找不到。
我想filter在circlesvg元素内使用属性。但是,它不会呈现到DOM中。这是我的React组件:
class DeviceDot extends React.Component {
render () {
const { app, idx } = this.props
return <circle cx={50 * idx} cy={50 * idx} r='25' filter={`url(#${app})`} fill='mediumorchid' />
}
}
Run Code Online (Sandbox Code Playgroud)
和过滤器:
class FilterSVG extends React.Component {
render () {
const { app, idx } = this.props
const icon = app ? `/api/apps/${app}/logo` : '/img/dflt.png'
return (
<filter id={app || 'default'} x='0%' y='0%' width='100%' height='100%'>
<feImage xlinkHref={icon} />
</filter>
)
} …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用react-native-router-flux进行设置,并按照步骤操作。然后尝试遵循这些示例,并记录大量信息以尝试对其进行反向工程。但是,即使按照所有的信息我仍然可以找到一些奇怪的状态结构:
scene是包含路由器状态的对象。但是,初始状态是在内部复制的scene(因此它再次包含devices和 rooms对象)。
如果我更改了普通状态设备或路由,则会引发以下错误:(Key <name of the key> has already been defined其他人在此处报告了相同的问题)。
所以我的问题是:如何通过redux路由本机应用程序?您是否使用其他库?我可以使用任何示例或文档资源来修复代码吗?
认为它具有典型的redux结构。为了这个例子,这就是我的样子app/index.js:
import React, { Component } from 'react'
import { Router, Scene } from 'react-native-router-flux'
import { createStore, applyMiddleware, compose } from 'redux'
import { Provider, connect } from 'react-redux'
import logger from 'redux-logger'
import reducers from './reducers'
import Home from './components/home'
import Device from './components/devices'
import Login from './components/login'
const middleware = …Run Code Online (Sandbox Code Playgroud) 我已经跟踪过 - 或试过几个关于如何做的帖子,包括airbnb酶的指南(分开)react-native和jest.(如:https://medium.com/@childsmaidment/testing-react-native-components-with-enzyme-d46bf735540#.6sxq10kgt,https://blog.callstack.io/unit-testing-react-native-with -the-new-jest-i-snapshots-come-to-play-68ba19b1b9fe#.4iqylmqh5或如何使用Jest与React Native)
但是每当我尝试渲染(而不是挂载,崩溃)任何本机组件时,我都会收到很多警告(我有多组并发测试).警告总是关于未被识别的原生道具.
Warning: Unknown props `focus`, `secureTextEntry` on <TextInput> tag. Remove these props from the element.
in TextInput (created by TextInput)
in TextInput (created by PasswordInput)
Run Code Online (Sandbox Code Playgroud)
有设置工作的任何人都会识别如何删除警告或如何解决警告?
谢谢
我正在使用redux-persistReact Native项目,该项目在除Android 7之外的许多设备上都能正常运行。我试图调试为什么我的本地存储不持久的问题,并发现了这一点:
以下代码在React Native组件生命周期内执行
componentDidMount() {
attachObservables(store)
setInterval(async () => {
console.log('Inside setInterval')
const data = await AsyncStorage.getAllKeys()
console.log('inside the getAllKeys')
data.forEach(async k => {
const value = await AsyncStorage.getItem(k)
console.group(k)
console.log(value)
console.groupEnd()
})
}, 3000)
}
Run Code Online (Sandbox Code Playgroud)
从不调用“ Inside setInterval”之后的代码。如果在setInterval之外,它将仅运行一次。如果我一次调用setInterval 之外的代码,它似乎可以正常运行。我也尝试过回调格式与异步/等待版本,但这似乎无关紧要。
我在使用firebase js库时遇到了同样的问题(在第一个回调之后永远不会返回回调)。我现在正在寻找替代方法来解决此问题。
有任何想法吗?
我想通过上下文从几乎位于应用程序顶部的功能组件向树传递一些道具。有没有办法实现这一点,或者我们应该声明一个 ES6/ createClassreact 组件?
谢谢
我正在尝试发出和监听事件。发射正在工作,但是当我尝试收听应用程序时。任何人都可以帮我解决这个问题吗?
这是代码
export class EmitEvents extends EventEmitter {
constructor () {
super()
this.valid_devices_list = {}
}
_discover() {
this.emit('found');
this.on('found', function () {
console.log('Got it!')
})
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行它 this.on 给我一个错误
this.on 不是函数
这有什么帮助吗?先感谢您!
我正在关注最新版本的 Firebase Google Web SDK。从登录到注册和注销的一切都很好。我想让用户删除自己的帐户并遵循firebase.User类的 API 参考。我还阅读了他们关于管理用户的文档。
这是我使用的代码:
function deleteAccount () {
console.log('delete account!!')
const auth = firebase.auth()
console.log({auth})
auth.delete().then(function () {
console.log('delete successful?')
const user = firebase.auth().currentUser
console.log({user})
store.dispatch(forgetUser())
routerReset('GetStarted')
}).catch(function (error) {
console.log({error})
// An error happened.
})
}
Run Code Online (Sandbox Code Playgroud)
该函数delete似乎从firebase.Auth对象工作并解决了承诺。如果signOut对日志做同样的事情会出现一个未定义的对象,但是在这里:
console.log({user}) // { user: Firebase.User object }
Run Code Online (Sandbox Code Playgroud)
不会发出错误。
注意:这是一个 react-native 应用程序。
react-native ×10
javascript ×6
reactjs ×5
android ×3
ios ×2
node.js ×2
redux ×2
asyncstorage ×1
ecmascript-6 ×1
enzyme ×1
facebook ×1
firebase ×1
http ×1
jestjs ×1
mongodb ×1
mongoose ×1
nodes ×1
react-redux ×1
svg ×1
tcp ×1