成功将Eclipse-Android-Project导入"Android Studio 1.4"后,__CODE__
当我点击按钮在模拟器中运行应用程序时,我收到错误.
但我找不到任何办法.
单击"运行"时会打开此对话框:
这是"项目结构"对话框:
我现在应该怎么做?
我内置有应用ReactNative无论是iOS和了Android 的ListView.使用有效数据源填充列表视图时,屏幕底部会显示以下警告:
警告:数组或迭代器中的每个子节点都应该具有唯一的"键"支柱.检查渲染方法
ListView
.
这个警告的目的是什么?在消息之后,它们链接到以下页面:https://fb.me/react-warning-keys,其中讨论了完全不同的内容,这些内容与本机反应无关,但与基于web的reactjs无关.
我的ListView是用这些语句构建的:
render() {
var store = this.props.store;
return (
<ListView
dataSource={this.state.dataSource}
renderHeader={this.renderHeader.bind(this)}
renderRow={this.renderDetailItem.bind(this)}
renderSeparator={this.renderSeparator.bind(this)}
style={styles.listView}
/>
);
}
Run Code Online (Sandbox Code Playgroud)
我的DataSource包含以下内容:
var detailItems = [];
detailItems.push( new DetailItem('plain', store.address) );
detailItems.push( new DetailItem('map', '') );
if(store.telefon) {
detailItems.push( new DetailItem('contact', store.telefon, 'Anrufen', 'fontawesome|phone') );
}
if(store.email) {
detailItems.push( new DetailItem('contact', store.email, 'Email', 'fontawesome|envelope') );
}
detailItems.push( new DetailItem('moreInfo', '') );
this.setState({
dataSource: this.state.dataSource.cloneWithRows(detailItems)
});
Run Code Online (Sandbox Code Playgroud)
ListView-Rows使用以下内容进行渲染:
return (
<TouchableHighlight underlayColor='#dddddd'> …
Run Code Online (Sandbox Code Playgroud) 我有两个不同的ReactNative项目:
在新项目中,react-native的cli工具包含命令"run-ios"接下来的两个"run-android",但不包括2016年januar的旧项目.在较旧的项目中没有"run-ios"命令可供选择:
$ react-native run-ios
Command `run-ios` unrecognized
Usage: react-native <command>
Run Code Online (Sandbox Code Playgroud)
我已经运行了"react-native upgrade"而没有任何问题.
如何在旧项目中获得命令"run-ios"?
启动一个新的react-native项目,xcode-project输出bundle-identifier"org.reactjs.native.example.XYZApp".XYZ是我的真实项目名称的占位符.
有没有办法在react-native端更改此bundle标识符?当然,我可以在XCode中更改它.但这不安全,因为当react-native重新创建xcode项目时,它可以被覆盖,这可能在任何时候发生,也可能在重建项目时发生.
我有两个不同的reat-native项目,具有完全相同的库版本.
但最新的一个涉及"export default const",另一个没有.
这两个电话有什么区别?
第一个正确编译并且已经在app商店中使用以下代码:
export default const result = [...]
Run Code Online (Sandbox Code Playgroud)
第二个具有相同的package.json并且在相同的代码"意外令牌(1:15) - >位置15在"默认"之后失效.
这是使用的package.json:
{
"name": "rn_simpleorm",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "react-native start"
},
"dependencies": {
"react": "15.3.2",
"react-native": "^0.32.0"
},
"jest": {
"preset": "jest-react-native",
"modulePathIgnorePatterns": [
"node_modules/react-native/node_modules/"
]
},
"devDependencies": {
"babel-jest": "^15.0.0",
"babel-preset-react-native": "^1.9.0",
"jest": "^15.1.1",
"jest-react-native": "^15.0.0",
"react-test-renderer": "^15.3.1"
}
}
Run Code Online (Sandbox Code Playgroud) 因为回调中不允许"yield" - 语句,我如何在回调中使用redux-saga的"put"功能?
我想要进行以下回调:
function onDownloadFileProgress(progress) {
yield put({type: ACTIONS.S_PROGRESS, progress})
}
Run Code Online (Sandbox Code Playgroud)
这不起作用并以"意外令牌"结束,因为普通函数不允许产生.否则我不能将回调作为" 函数* " 传递,这将允许收益.ES6似乎在这里打破了.
我读过redux-saga提供了一些称为" 频道 "的功能,但说实话,我没有得到它.我已经多次阅读过关于这些频道和示例代码的内容,但在所有示例中,他们都解决了非常困难和不同的问题,而不是我的简单案例,并且在一天结束时我已经到了那里.
有人能告诉我如何处理这个问题的解决方案吗?
整个背景:
function onDownloadFileProgress(progress) {
yield put({type: ACTIONS.S_PROGRESS, progress})
}
export function * loadFile(id) {
let url = `media/files/${id}`;
const tempFilename = RNFS.CachesDirectoryPath + '/' + id;
const download = RNFS.downloadFile( {
fromUrl: url,
toFile: tempFilename,
background: false,
progressDivider: 10,
progress: onDownloadFileProgress,
})
yield download.promise;
}
Run Code Online (Sandbox Code Playgroud) 在我的ReactNative项目中有一些静态文本文件,我想加载到字符串变量中.像这样:
var content = loadPlainTextFile("resources/tags.txt");
var tags = content.split("\n");
Run Code Online (Sandbox Code Playgroud)
我尝试以同样的方式要求我需要javascript文件,但它不起作用因为本机反应给出异常"无法解析模块./data/tags.txt".
var customData = require('./data/tags.txt');
Run Code Online (Sandbox Code Playgroud)
我猜require()无法处理纯文本文件?
怎么做正确?
NextJS 让我感到困惑。我读过的所有官方示例和许多(大多数,全部?)教程(包括官方文档)都使用 - 目录pages
(以及,如果需要,用于api
后端服务的 - 目录)组织应用程序。他们声称pages
目录下的每个文件都会自动反映相应的路由名称。
然而,当使用创建新的 NextJS 应用程序时npx create-next-app@latest
,我得到了完全不同的设置。它包含一个名为app
and not的文件夹pages
。此外,app
-folder 包含一个文件作为以前在pages-folder 中page.txs
的同义词。index.tsx
在这些教程和文档中,存在App
通过放置文件来覆盖系统组件的概念pages/_app.tsx
。我找不到任何如何使用新目录方案执行此操作的信息。
教程和文档:
- package.json
- next.config.js
+ pages
- _app.tsx
- _document.tsx
- about.tsx
- index.tsx
+ public
- favicon.ico
Run Code Online (Sandbox Code Playgroud)
新脚手架:
+ app
- favicon.ico
- globals.css
- layout.tsx
- page.tsx
- next.config.hs
- package.json
Run Code Online (Sandbox Code Playgroud)
发生什么事了NextJS
?什么是对的?将创建的脚手架是否错误npx create-next-app@latest
,或者是否有我找不到的其他版本的文档?
如果新的脚手架是正确的版本,我如何在app
目录中放置新的路由和子页面?拥有 - 目录的概念 …
使用XCode 7.2从头开始安装OSX给了我iOS SDK 9.2.
我需要iOS SDK 9.0来解决一些兼容性问题.有没有下载页面?
我访问了https://developer.apple.com/ios/download/,它现在只包含到iOS 9.2和iOS 9.3beta的下载链接.
ReactNative的ListView在数据更新方面有点奇怪.
我有一个对象数组(名称:Item),它有3个属性:
项目数组显示在ListView中.每行显示项目的名称和表示启用状态的复选标记(红色表示真,灰色表示假).在我的例子中,它被简化为一个简单的字符串"true"/"false".
每行都嵌入一个带有onPress-EventHandler的TouchableOpacity,它可以切换所表示项目的启用状态.
不幸的是,ListView不会更新该行.
在调试rowHasChanged-Event时,事实证明rowHasChanged-Event永远无法确定已更改的状态,因为在切换enabled-property之后两行都已获得新状态而不对UI进行任何更新.
export default class Item {
constructor(id, name, enabled) {
this._id = id;
this._name = name;
this._enabled = enabled;
}
get id() {return this._id}
get name() {return this._name}
set name(value) {this._name = value}
get enabled() {return this._enabled}
set enabled(value) {this._enabled = value}
}
Run Code Online (Sandbox Code Playgroud)
'use strict';
import React, {PropTypes, Component} from 'react';
import {View,TouchableOpacity, TouchableHighlight,
Text, ListView, StyleSheet} from 'react-native';
import Item from './Item';
class ItemListView extends Component {
constructor(props) …
Run Code Online (Sandbox Code Playgroud) react-native ×6
javascript ×3
ecmascript-6 ×2
ios ×2
reactjs ×2
xcode ×2
android ×1
facebook ×1
listview ×1
next.js ×1
next.js13 ×1
redux ×1
redux-saga ×1
sdk ×1
yield ×1