小编Guy*_*Guy的帖子

使用扩展语法在ES6中进行深层复制

我正在尝试为我的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中是否有一种方法可以使用扩展语法来深度复制对象?

javascript ecmascript-6 spread-syntax redux

79
推荐指数
6
解决办法
8万
查看次数

AngularJS:textarea绑定到JSON对象显示"object-object"

我是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显示为对象

如何显示字符串化的JSON(以后再将其另存为对象)?

angularjs

40
推荐指数
4
解决办法
4万
查看次数

使用React Native中的Fetch获取查询字符串

我正在提出这样的请求:

fetch("https://api.parse.com/1/users", {
  method: "GET",
  headers: headers,   
  body: body
})
Run Code Online (Sandbox Code Playgroud)

如何传递查询字符串参数?我只是将它们添加到URL吗?我在文档中找不到一个例子.

fetch reactjs react-native

29
推荐指数
3
解决办法
5万
查看次数

获取response.json()和response.status

这是使用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)

javascript fetch promise

18
推荐指数
3
解决办法
2万
查看次数

带搜索的NSFetchedResultsController

过滤NSFetchedResultsController数据的最佳做法是什么?每次搜索栏的文本发生变化时,我是否需要重新初始化它?

我正在使用UISearchDisplayControllers和我正在实施:

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString;
Run Code Online (Sandbox Code Playgroud)

谢谢.

core-data objective-c nsfetchedresultscontroller

17
推荐指数
2
解决办法
2万
查看次数

创建新类与使用export const之间的差异

建立:

  • BabelJS(es2015,反应,阶段-1)
  • 的WebPack
  • React/redux

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)
  1. 方法A:每次导入时都会有新的实例吗?
  2. 方法B:使用对象解构的能力之一是:

    import { method1 } from '../utils/StateParser.js';
    
    Run Code Online (Sandbox Code Playgroud)

    然后使用method1,就好像它存在于本地?

  3. 方法A:在构造函数中初始化状态的能力有哪些好处?

所以基本上我不确定何时使用哪个实用程序类,并希望您的输入.

commonjs ecmascript-6 reactjs babeljs

13
推荐指数
2
解决办法
1万
查看次数

是否需要使用StyleSheet.create?

我以这种方式定义样式:

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来定义样式,还是可以使用普通对象?

react-native

13
推荐指数
1
解决办法
2698
查看次数

电报机器人:如何使用botFather删除命令

我试图使用botFather擦除我的机器人的所有命令.我找不到这方面的文档.有一个选项可以向BotFather发送新的命令列表,但这对我没有帮助,因为我的机器人没有任何命令,因为我正在使用自定义键盘.

知道怎么做吗?

telegram telegram-bot

12
推荐指数
1
解决办法
2万
查看次数

nodeJS中的JSDOM:如何取回被操纵的html?

我试图操纵远程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)

javascript node.js jsdom

10
推荐指数
2
解决办法
1万
查看次数

通过Android中的PHOTO_FILE_ID将联系人的图片更改为大型照片

这似乎适用于小图像:

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而不是原始数据.我的问题:

  1. 如何保存照片(byte [])并获取PHOTO_FILE_ID?
  2. 如果已有照片可用(照片不是PHOTO_FILE_ID).我是否需要删除它才能看到大图像,或者大图像是否优先,如果不是,我该如何删除它?

java android android-contacts

10
推荐指数
1
解决办法
1678
查看次数