3 回答
TA貢獻1111條經(jīng)驗 獲得超0個贊
if 語句中有一個問題:else if ((value) => 1 && value < 25) {,如果您仔細觀察,應(yīng)該是:else if (value >= 1 && value < 25) {。
為什么? (value) => 1是一個總是返回 1 的箭頭函數(shù)。
這應(yīng)該做的工作:
(value >= 1 && value < 25)
但是如果你把這段代碼轉(zhuǎn)換成一個函數(shù)會更好,像這樣:
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條經(jīng)驗 獲得超3個贊
您的代碼的邏輯部分看起來沒問題。問題可能與樣式有關(guān)。
你能把你的風(fēng)格改成這些而不是你的嗎:
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: "row",
alignItems: "center",
justifyContent: "center",
},
bar: {
height: 20,
width: 20
},
});
另外,如果最佳解決方案不起作用,您可以驗證值是一個數(shù)字嗎?通過安慰它
console.log(值類型)
添加回答
舉報
