我正在构建一个严重依赖用户当前位置的移动应用程序.直到最近,我可以轻松地将自定义坐标输入到我的模拟器Debug - > Location中,让我的应用程序反映出这一变化.我最近升级到react-native 0.41.1,我的应用程序无法再注册位置更改.
我的堆栈:
反应:15.4.2反应原生:0.41.1 xcode:8.2.1 mac os sierra ios 10.2
我的代码:
componentDidMount() {
//this._getUserLocation();
navigator.geolocation.getCurrentPosition(
(position) => {
var initialPosition = JSON.stringify(position);
console.log(initialPosition);
},
(error) => alert(JSON.stringify(error)),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
}
Run Code Online (Sandbox Code Playgroud)
我在info.plist中拥有所有正确的位置权限,并且我尝试了多种方法来删除,重新添加,从设置中删除位置服务并实现权限等等.但我仍然可以获得相同的结果.
我的应用程序将加载调试 - >位置设置为启动时的任何内容,然后不记录我为模拟新位置所做的任何更改.
例:
在启动它加载:{"coords":{"speed":0,"经度": - 122.0312186,"纬度":37.33233141,"准确度":5,"他说": - 1,"海拔":0, "altitudeAccuracy": - 1}, "时间戳":1488260204384.006}
这是Apple总部.然后我去调试 - >位置并更改为自定义坐标,重新加载我的应用程序,我得到相同的输出.过去并非如此.我可以尝试任何新的坐标,它总是一样的.虽然有时候,如果我更改坐标并重新启动,它将使用新坐标加载,然后问题会自行重复.
更改maximumAge值无效.
任何帮助都将非常感激.我已经在这个问题上待了几个星期并完全陷入困境.
提前致谢.
我无法让nth-child或nth-of-type选择器在 div 列表中生效。
我正在 React 应用程序中工作,并且有一个代表集合中单个项目的组件,该组件呈现以下 HTML 结构:
<div className="link-row">
<div className="link-row-header-container">
<div className="header-name"></div>
<div className="header-info"></div>
</div>
<div className="link-container">
<div className="left-inner-container"> //this is the container i'm trying to select
</div>
<div className="right-inner-container">
</div>
</div>
<div className="link-row-footer-container">
<span> footer stuff </span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我在外部组件中有一个函数,将上述组件映射到数据集合上,并将它们放入单个数据中,<div>如下所示:
<div> {linkList} </div>
Run Code Online (Sandbox Code Playgroud)
我试图以三个序列交替“左内容器”的背景颜色,但我始终只在所有这些颜色中获得单一颜色。
这是我的 CSS:
.left-inner-container {
display: flex;
justify-content: center;
align-items: center;
width: 50px;
height: 50px;
border-right-style: solid;
border-right-width: 2px;
border-right-color: #450037;
}
.left-inner-container:nth-of-type(3n+1) {background-color: #ff5e39;}
.left-inner-container:nth-of-type(3n+2) {background-color: #00d2d1;} …Run Code Online (Sandbox Code Playgroud) 当电子窗口显示在main.js中时,我试图捕获渲染器进程(反应应用程序)中的事件。我(据我所知)无法使用react组件的生命周期,因为该组件已经安装在初始负载上,并且除非状态发生变化,否则电子组件不会更新,除非状态改变,电子主过程ShowWindow在初始加载后均不会触发。
我的用例是当用户从托盘中打开窗口并检查通知时检查新数据。再次,启动应用程序,关闭托盘,然后重新打开不会更新状态,因此使我无法利用组件的生命周期。
因此,当主进程显示窗口时,我试图找到一种将消息从ipcMain发送到ipcRenderer的方法,但是却遇到了解决方法。
这是相关的main.js代码:
tray.on('click', function (event) {
toggleWindow()
}
function toggleWindow() {
if (window.isVisible()) {
window.hide()
} else {
showWindow()
}
}
function showWindow() {
const position = getWindowPosition()
window.setPosition(position.x, position.y, false)
window.show()
window.focus()
toggleTrayIcon()
}
Run Code Online (Sandbox Code Playgroud)
在代码的其他地方,我正在执行类似的操作以与渲染器通信,但是在这种情况下,我不确定如何处理事件对象:
ipcMain.on('open-finder', function(event, arg) {
let properties = { properties: ['openFile'], filters: [{name: 'Images', extensions: ['jpg', 'png', 'jpeg']}] }
let filePath = dialog.showOpenDialog(window, properties);
let fileData = filePath ? getBase64(filePath[0]) : null
event.sender.send('open-finder-reply', fileData);
});
Run Code Online (Sandbox Code Playgroud)
然后在我的react组件中,我想做类似这样的事情(与上面的示例有关)来处理该事件并触发我的通知:
class Profile extends Component {
constructor(props) { …Run Code Online (Sandbox Code Playgroud) 我正在研究iOS的本机移动应用程序,并尝试在ScrollView的底部使重叠的TextInput保持粘性.我的第一个想法是将它移到ScrollView之外,这可以工作但不允许组件覆盖滚动内容.
这是我的代码示例:
基本理念:
<ScrollView style={styles.tabView}>
<View>
</View>
<TextInput style={styles.input} />
</ScrollView>
我只能做到以下其中一项:1)保持在底部没有覆盖,2)只显示在整个滚动视图的底部.
这两个世界都是最好的吗?
任何有关这方面的帮助将不胜感激.
谢谢.