小编xur*_*d29的帖子

JS解构.如何处理null或undefined值

如何在实现Nullable功能?我需要支持我以前的同事的源代码,他使用了过多的解构功能.像这样的东西,每个地方:

dispatch(
    loadImports(response.items.map(({ importRecord: { ['import']: importId } }) => importId))
)
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我可能会收到TypeError: Cannot read property 'import' of null错误.

我不想将整个结构重写为常规条件.或者如果没有,如何处理它们,而不重写?

UPD:

同事的预期版本:https: //jsbin.com/fesewiy/edit?js,console

当前版本:https://jsbin.com/qirixil/edit?js,console

javascript ecmascript-6

7
推荐指数
1
解决办法
2022
查看次数

在 RESTAPI 中重新索引 ArrayCollection 元素

想象一下,我有一个数组集合$items,并removeItem在我的SomeEntity实体类中实现了一个方法,

public function removeItem(Item $item)
{
    $this->items->removeElement($item);
    return $this;
}
Run Code Online (Sandbox Code Playgroud)

以及接收 PATCH 请求的控制器操作:

public function patchAction(Request $request, SomeEntity $entity) {
    $form = ...;

    $form->handleRequest($request);
    if ($form->isValid()) {
        ...
        $this->get('doctrine.orm.entity_manager')->flush();

        return $entity;
    }

    return $form;
}
Run Code Online (Sandbox Code Playgroud)

想象一下,SomeEntity类的实例将项目保存为[0 => {ITEM}, 1 => {ITEM}, 2 => {ITEM}, 3 => {ITEM}](对象的索引数组)。如果您以 JSON 格式向前端项目中getActionSomeEntity对象发送请求并接收该对象,则对象中这些项目的类型将是对象的索引数组(您可以使用数组方法对其进行迭代),但是如果您删除一个或其中更多来自具有 PATCH 方法的对象并接收 JSON 响应,您将获得一个包含对象的 Object 类型,因为在 PATCH 请求之后某些键已被删除,并且响应中 SomeEntity 类的对象不再包含索引数组,而是会有一个对象的对象。这是因为,当您将数组转换为 json 对象时,您会得到两种不同的结果

  1. 对象数组(数组)如果键被索引(例如:0,1,2,3,...)
  2. 如果键没有索引(例如:0,2,3,6,...),则对象(数组)的对象

此时我正在通过修改(手动重新创建元素)removeItem实体类中的现有方法来解决这个问题,如下所示: …

rest json arraycollection symfony

3
推荐指数
1
解决办法
1119
查看次数

标签 统计

arraycollection ×1

ecmascript-6 ×1

javascript ×1

json ×1

rest ×1

symfony ×1