首页 > 解决方案 > ramda:根据对象的当前状态设置对象

问题描述

我想要一个可以设置位置对象的管道。假设位置对象看起来如下开始:

{
  pathname: '/users',
  search: 'sort=desc&sortBy=name',
  hash: '',
  state: {},
}

在管道的第一步,我想将state.redirectthis 设置为当前对象,但不state包含。例如,

{
  pathname: '/users',
  search: 'sort=desc&sortBy=name',
  hash: '',
  state: {
    redirect: {
      pathname: '/users',
      search: 'sort=desc&sortBy=name',
      hash: '',
    }
  }
}

我从以下开始,但它并没有真正起作用。

set(lensProp('state'), /* ??? */)

在 ramda 中执行此操作的适当方法是什么?

标签: javascriptfunctional-programmingramda.js

解决方案


这应该这样做:

const loc = {
  pathname: '/users',
  search: 'sort=desc&sortBy=name',
  hash: '',
  state: {},
}

console.log(R.dissoc('state', loc))
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.js"></script>

我应该使用Ramda 的什么功能?可能有助于找到这样的功能。


推荐阅读