3 回答

TA貢獻1111條經驗 獲得超0個贊
if 語句中有一個問題:else if ((value) => 1 && value < 25) {,如果您仔細觀察,應該是:else if (value >= 1 && value < 25) {。
為什么? (value) => 1是一個總是返回 1 的箭頭函數。
這應該做的工作:
(value >= 1 && value < 25)
但是如果你把這段代碼轉換成一個函數會更好,像這樣:
const getBackgroundColor = () => {
let color;
if (value === 0) {
color = '';
} else if (value >= 1 && value < 25) {
color = 'red';
} else if (value >= 25 && value < 50) {
color = 'orange';
} else if (value >= 50 && value < 90) {
color = 'yellow';
} else if (value >= 90) {
color = 'green';
}
return color;
};
并像這樣使用它:
{width: value * 1.5, backgroundColor: getBackgroundColor()},

TA貢獻1942條經驗 獲得超3個贊
您的代碼的邏輯部分看起來沒問題。問題可能與樣式有關。
你能把你的風格改成這些而不是你的嗎:
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: "row",
alignItems: "center",
justifyContent: "center",
},
bar: {
height: 20,
width: 20
},
});
另外,如果最佳解決方案不起作用,您可以驗證值是一個數字嗎?通過安慰它
console.log(值類型)
添加回答
舉報