开发者问题收集

未捕获的类型错误:无法读取 null 的属性“value”(React/JS/TS)

2022-08-31
27

我创建了一个函数,根据值呈现不同的 backgroundColor。

  const backgroundColorResolver = () => {
    allQuestions.map((aq) => {
      if (aq.averageAnswerValue <= 4) return "#EE7362";
      if (aq.averageAnswerValue > 4 && aq.averageAnswerValue < 7)
        return "#FDCF5B";
      return "#068466";
    });
  };

在 tsx 中的 return 下,我执行:

   <View style={questionAverageResultStyling.indexContainer}>
            {allQuestions.map(({ averageAnswerValue, key }) => (
              <View
                style={{
                  backgroundColor: `${backgroundColorResolver}`,
                  margin: "0.5",
                  width: "100%",
                  height: "25px",
                }}
              >
                <Text style={questionAverageResultStyling.indexText} key={key}>
                  {averageAnswerValue}
                </Text>
              </View>
            ))}
          </View>

但是,我收到错误消息“无法读取 null 的属性‘值’”。具体来说,在 style={{ backgroundColor: ${backgroundColorResolver } 中,有谁知道为什么以及如何使用其他样式(边距、宽度、高度)呈现此函数?如果信息缺失,请告诉我,我会添加它。

1个回答

backgroundColorResolver 是一个函数对象。您将其用作具有值的对象,而实际上并未调用该函数。因此,不要输入:

backgroundColor: `${backgroundColorResolver}`

输入:

backgroundColor: `${backgroundColorResolver()}`

此外,我不确定该函数如何读取 allQuestions 变量。也许您也应该重构它。

apasic
2022-08-31