Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native:功能组件中的getter函数?_Javascript_Reactjs_Native - Fatal编程技术网

Javascript React Native:功能组件中的getter函数?

Javascript React Native:功能组件中的getter函数?,javascript,reactjs,native,Javascript,Reactjs,Native,我不熟悉React/React Native,在将函数值返回到模板时遇到问题。我的组件是一个功能组件,它接收一个名为item的道具。我在一个简单的计算之后从该项中检索到一个值,但是我尝试在模板中返回该值的每种方法都会得到不同的错误 我最后一次尝试是: getMaxPercent() { let max = _.maxBy(props.item.discounts, function(discount) { return discount.sale; }); return m

我不熟悉React/React Native,在将函数值返回到模板时遇到问题。我的组件是一个功能组件,它接收一个名为
item
的道具。我在一个简单的计算之后从该项中检索到一个值,但是我尝试在模板中返回该值的每种方法都会得到不同的错误

我最后一次尝试是:

getMaxPercent() 
{
  let max = _.maxBy(props.item.discounts, function(discount) {
    return discount.sale;
  });
  return max;
}
在这样的模板中:

<Text style={{ fontSize:17, color:'white', fontWeight:'bold' }}>
  { getMaxPercent() }% Off
</Text>
来自vue背景的react看起来很。。。冗长的。是否存在与计算属性等效的react?

试试这个

function getMaxPercent() 
    {
        let max = _.maxBy(props.item.discounts, function(discount) {
            return discount.sale;
        });
        return max.sale;
    }
参考-

是否存在与计算属性等效的react

与计算属性等价的React只是标准变量,在组件函数体中声明。每次更改道具时,该函数都会运行,因此将重新计算道具

您根本不需要额外的函数-您可以直接将
max
赋值给变量

const Component = (props) => {
  const max = _.maxBy(props.item.discounts, function(discount) {
    return discount.sale;
  });

  return (
    <Text style={{ fontSize:17, color:'white', fontWeight:'bold' }}>
      { max }% Off
    </Text>
  );
};
const组件=(道具)=>{
const max=u.maxBy(props.item.discounters,函数(discount)){
退货折扣。销售;
});
返回(
{max}折扣%
);
};

如果您不想依赖lodash,您可以使用自己的简单max finder返回maximum
sale
属性

const getMaxPercent = (discounts) =>
  Math.max(...discounts.map(({ sale }) => sale));
const getMaxPercent=(折扣)=>
max(…折扣.map({sale}=>sale));
常量折扣=[
{
id:0,
销售额:3.5
},
{
id:1,
销售额:13.5
},
{
id:2,
出售:13
},
{
id:3,
销售额:10
},
{
id:4,
销售额:7.8
}
];

log(getMaxPercent(折扣))您得到了哪些具体错误?您还可以发布更多的代码以了解其结构。请包括一个示例,以便我们有更多的上下文,并包括错误消息和堆栈跟踪、实际和预期结果、任何调试/复制步骤。请包括更多详细信息。
const getMaxPercent = (discounts) =>
  Math.max(...discounts.map(({ sale }) => sale));