【问题标题】:Can we use a function inside a selector in react js我们可以在反应js的选择器中使用函数吗
【发布时间】:2022-08-16 19:12:40
【问题描述】:

我最近被困在一个地方,我想调用一个访问选择器内存储值的函数。

所以场景是这样的,在选择器中我有一些初始值,但是在特定功能期间,我想用我从函数中获得的一些额外属性来更新选择器响应。所以,最后我得到了一些修改后的初始值,是否有可能,我们应该如何解决这个问题?

将提供选择器、函数的代码 sn-p

在 selectOngoingFee 选择器中,我想调用constructData 函数,对于特殊情况,我需要选择器来操作returnObj。我无法向您展示确切的实现,实际上我被困在第一步,所以如果我知道如何调用constructData 并传递store 将非常有帮助。

selectAccountFeeRate is another selector which gives the result as {
  aofValue: {
    pensionFee: {
      amount: \'7\',
      type: \'AOF\',
      taxIncluded: \'NO\'
    }
  }
}

const constructData = (store, accountNumber) => {
  const pensionSavingAOF = selectAccountFeeRate(state, accountNumber) || {}
  const pensionSavingData = {
    fees: [{
      feeType: \'AOF\',
      value: pensionSavingAOF.aofValue.pensionFee.amount,
      isVatIncluded: pensionSavingAOF.aofValue.pensionFee.taxIncluded === YES

    }]
  }
  return {
    pensionSaving: pensionSavingData
  }
}

const selectOngoingFee = createSelector([selectRetrievedQuoteDetails], (quoteDetails)) => {
  const {
    ongoingFee
  } = quoteDetails || {}
  const pensionSaving = {
    fees: []
  }
  if (!isEmpty(ongoingFee)) {
    ongoingFee.forEach((item) => {
      const data = {
        feeType: \'AOF\',
        value: item.amount,
        isVatIncluded: item.taxIncluded
      }
      if (item.accountType === \'PENSION_SAVING_ACCOUNT\') {
        pensionSaving.fees.push(data)
      }
    })
  }
  const returnObj = {
    ...(pensionSaving.fees.length ? {
      pensionSaving
    } : {})
  }
  return returnObj
}
  • 可能吗。是的,是的。你的下一个问题是如何。取决于您的代码,要分享吗?
  • 在询问其他问题之前,请通读how to ask。请编辑此问题以使其适合 Stackoverflow。这个问题可能会被关闭,如果是,请重新阅读如何提问指南并打开一个适合 SO 的新问题。
  • 嗨@James,分享了代码。请让我知道如何实现

标签: javascript reactjs react-redux selector redux-saga


【解决方案1】:

虽然我已经问过这个问题,但是在经历了一堆阅读数据之后。我知道唯一的方法是创建另一个函数,将constructData 和selectOngoingFee 作为参数传递并对其进行操作。我希望我的理解在这里是正确的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2015-09-29
    • 2011-05-14
    • 2022-12-04
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多