我正在尝试为我的Redux项目创建一个深度复制映射方法,该方法将使用对象而不是数组.我读到在Redux中,每个州都不应该改变以前的状态.
export const mapCopy = (object, callback) => {
return Object.keys(object).reduce(function (output, key) {
output[key] = callback.call(this, {...object[key]});
return output;
}, {});
}
Run Code Online (Sandbox Code Playgroud)
有用:
return mapCopy(state, e => {
if (e.id === action.id) {
e.title = 'new item';
}
return e;
})
Run Code Online (Sandbox Code Playgroud)
但是它没有深层复制内部项目所以我需要调整它:
export const mapCopy = (object, callback) => {
return Object.keys(object).reduce(function (output, key) {
let newObject = {...object[key]};
newObject.style = {...newObject.style};
newObject.data = {...newObject.data};
output[key] = callback.call(this, newObject);
return output;
}, {});
}
Run Code Online (Sandbox Code Playgroud)
这不太优雅,因为它需要知道传递了哪些对象.ES6中是否有一种方法可以使用扩展语法来深度复制对象?
我是AngularJS的新手.
我试图将对象绑定到textarea.
HTML:
<textarea rows="5" cols="10" ng-model="menuItem.preset"></textarea>
Run Code Online (Sandbox Code Playgroud)
模型:
{
"kind": "title",
"label": "ADD_TITLE",
"iconSrc": "textTitle.png",
"experimentInclude": "",
"experimentExclude": "three",
"preset": {
"compType": "richTitle",
"styleId": "txtNew"
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
如何显示字符串化的JSON(以后再将其另存为对象)?
我正在提出这样的请求:
fetch("https://api.parse.com/1/users", {
method: "GET",
headers: headers,
body: body
})
Run Code Online (Sandbox Code Playgroud)
如何传递查询字符串参数?我只是将它们添加到URL吗?我在文档中找不到一个例子.
这是使用body.json()并获取状态代码的唯一方法吗?
let status;
return fetch(url)
.then((response => {
status = response.status;
return response.json()
})
.then(response => {
return {
response: response,
status: status
}
});
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为它在响应字段中返回一个promise:
.then((response)=> {return {response: response.json(), status: response.status}})
Run Code Online (Sandbox Code Playgroud) 过滤NSFetchedResultsController
数据的最佳做法是什么?每次搜索栏的文本发生变化时,我是否需要重新初始化它?
我正在使用UISearchDisplayControllers
和我正在实施:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString;
Run Code Online (Sandbox Code Playgroud)
谢谢.
建立:
CommonJS和ES6的新功能.我知道对象实例和方法的静态容器之间的区别,但我不确定它们在分离到模块时的行为方式.所以我想知道返回一个实例之间的区别是什么(这个模式是否有效?):
// StateParser.js
class StateParser {
constructor() {
}
method1() {
...
}
}
export default new StateParser()
Run Code Online (Sandbox Code Playgroud)
并导出const方法:
// StateParser.js
let state = {
}
export const method1 = () => { ... }
Run Code Online (Sandbox Code Playgroud)
方法B:使用对象解构的能力之一是:
import { method1 } from '../utils/StateParser.js';
Run Code Online (Sandbox Code Playgroud)
然后使用method1,就好像它存在于本地?
方法A:在构造函数中初始化状态的能力有哪些好处?
所以基本上我不确定何时使用哪个实用程序类,并希望您的输入.
我以这种方式定义样式:
const styles = StyleSheet.create({
container: {},
tabContent: {
alignItems: "flex-start",
flexDirection: "column",
padding: 21
},
tabHeader: {
flex: 0,
fontSize: 10,
paddingTop: 10,
},
tabText: {
flex: 0,
fontSize: 14,
paddingTop: 10,
textAlign: "left"
},
})
Run Code Online (Sandbox Code Playgroud)
但是,有一次我忘了使用StyleSheet.create并使用了一个普通对象:
const styles = {
container: {},
tabContent: {
alignItems: "flex-start",
flexDirection: "column",
padding: 21
},
tabHeader: {
flex: 0,
fontSize: 20,
paddingTop: 10,
},
tabText: {
flex: 0,
fontSize: 14,
paddingTop: 10,
textAlign: "left"
},
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是它有效.是否需要使用StyleSheet.create来定义样式,还是可以使用普通对象?
我试图使用botFather擦除我的机器人的所有命令.我找不到这方面的文档.有一个选项可以向BotFather发送新的命令列表,但这对我没有帮助,因为我的机器人没有任何命令,因为我正在使用自定义键盘.
知道怎么做吗?
我试图操纵远程HTML并返回它操纵.我决定使用JSDOM,但无法弄清楚如何获取被操纵的HTML.有任何想法吗?
jsdom.env({
url: "http://www.cnn.com",
scripts: ["http://code.jquery.com/jquery.js"],
done: function (err, window) {
var $ = window.$;
console.log("HN Links");
var src = $(".ghciTopStoryImage1 img").attr('src','http://lorempixel.com/396/220/');
var headline = $(".blkbigheader span").html('header');
var description = $(".blkbigheader").parent().find("p a:eq(0)").html('text');
// not working....
content =$(window.document).html();
}
});
Run Code Online (Sandbox Code Playgroud) 这似乎适用于小图像:
ContentValues values = new ContentValues();
values.put(ContactsContract.Data.RAW_CONTACT_ID, id);
values.put(ContactsContract.Data.IS_SUPER_PRIMARY, 1);
values.put(ContactsContract.CommonDataKinds.Photo.PHOTO, photo);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);
if (photoRow >= 0) {
context.getContentResolver().update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data._ID + " = " + photoRow, null);
} else {
context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
}
Run Code Online (Sandbox Code Playgroud)
从文档我意识到,对于大图像我需要设置PHOTO_FILE_ID,所以我可以替换:
ContactsContract.CommonDataKinds.Photo.PHOTO
Run Code Online (Sandbox Code Playgroud)
有:
ContactsContract.CommonDataKinds.Photo.PHOTO_FILE_ID
Run Code Online (Sandbox Code Playgroud)
但是,我需要提供PHOTO_FILE_ID而不是原始数据.我的问题:
javascript ×3
ecmascript-6 ×2
fetch ×2
react-native ×2
reactjs ×2
android ×1
angularjs ×1
babeljs ×1
commonjs ×1
core-data ×1
java ×1
jsdom ×1
node.js ×1
objective-c ×1
promise ×1
redux ×1
telegram ×1
telegram-bot ×1