小编S. *_*enk的帖子

为什么改变我的状态的浅层副本被认为是可以的?

考虑以下:

    [SELECT]: (state, action) => {
      let newState = {...state, newState} 
      delete newState[action.payload.key]
      return(newState)
}
Run Code Online (Sandbox Code Playgroud)

为什么我可以改变浅拷贝,返回它并仍然满足不改变我的状态的规则?

javascript reactjs redux

4
推荐指数
1
解决办法
298
查看次数

如何迭代动态键控对象?

我有一个散列对象,其中的键是通过用户选择动态添加的。

我想遍历并提取类似,如果它只是一个数组,我会做的方式,值:selections.map(cart => /*do stuff*/)

我怎样才能做到这一点?

javascript ecmascript-6

4
推荐指数
1
解决办法
2491
查看次数

使用 Promise.all() 获取带有 await 语句的 url 列表

tl; dr - 如果您必须过滤承诺(例如错误的承诺),请不要使用异步函数

我正在尝试使用异步获取 url 列表并解析它们,问题是如果我在获取时其中一个 url 出现错误 - 假设由于某种原因 api 端点不存在 - 程序用明显的错误粉碎解析:

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: ext is not iterable
Run Code Online (Sandbox Code Playgroud)

我试过检查 res.json() 是否未定义,但显然不是这样,因为它抱怨整个 'ext' 承诺数组不可迭代。

async function fetchAll() {
  let data
  let ext
  try {
    data = await Promise.all(urls.map(url=>fetch(url)))
  } catch (err) {
    console.log(err)
  }
  try {
    ext = await Promise.all(data.map(res => {
      if (res.json()==! 'undefined') { return res.json()}
    }))
  } catch (err) {
    console.log(err)
  }
  for (let item of ext) {
    console.log(ext) …
Run Code Online (Sandbox Code Playgroud)

javascript

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

了解以下减速机的扩散和结构使用

我试图围绕这个减速器如何工作,所以我可以将REMOVE_ITEM添加到我的动作处理程序中.我当前的尝试给出了一个state.filter不是函数错误.

// ------------------------------------
// Action Handlers
// ------------------------------------
const ACTION_HANDLERS = {
  [GET_POSTS]: (state, action) => ({ ...state, ...action.payload}),
  [PICK_ITEM]: (state, action) => ({ ...state, ...action.payload}),
  [REMOVE_ITEM]: (state, action) => ({...state.filter(item => item !== action.payload)}) // <-- NOT WORKING
}

// ------------------------------------
// Reducer
// ------------------------------------
const initialState = []
export default function contentReducer (state = initialState, action) {
  const handler = ACTION_HANDLERS[action.type]

  return handler ? handler(state, action) : state
}
Run Code Online (Sandbox Code Playgroud)

我不太确定那里的传播和结构是怎么做的.如果我理解正确,传播给了我们一个复制版本的状态,所以我们不会改变它,但是如何如下:handler(state, action)创建我们的新状态?

javascript reactjs redux

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

过滤嵌套在一个衬垫中的另一个数组中的数组

我正在尝试过滤一系列嵌套数组中的空字符串条目,但 filter 实际上并没有改变数组。

const text = [
  ['222','','ghy','','hthb'],
  ['333','','ghw','','5gth'],
  ['444','','fht','','5gbh'],
]

text.map(el=>el.filter(entry => entry.trim() != ''))

console.log(text)
Run Code Online (Sandbox Code Playgroud)

javascript

-1
推荐指数
1
解决办法
56
查看次数

标签 统计

javascript ×5

reactjs ×2

redux ×2

ecmascript-6 ×1