亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當值被刪除時,react styled-componens 輸入值變為 Non

當值被刪除時,react styled-componens 輸入值變為 Non

人到中年有點甜 2023-12-25 16:57:10
我有一個 RangeSlider 和另一個輸入綁定到它,問題是當有人從滑塊下的輸入中清空(刪除)值時,滑塊變為白色并且值變為非,如所附屏幕截圖所示你可以查看演示有什么幫助嗎?
查看完整描述

3 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

演示:https ://codesandbox.io/s/optimistic-khayyam-3g8sv?file=/src/Slider.js

 

  ? !isNaN(value) ? value : 'no value'

   : value >= 1000

 ? `$${(value / 1000).toFixed(2)}k`

 : `$${value}`

}


查看完整回答
反對 回復 2023-12-25
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

你有這條線

inputs[i].data = parseInt(e.target.value);

– 如果該值不可解析為整數,則您會得到NaN.

您必須決定在這種情況下該怎么做;一個簡單的解決方案是利用 s 為假的事實來替換零NaN

inputs[i].data = parseInt(e.target.value) || 0;


查看完整回答
反對 回復 2023-12-25
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

我認為問題出在你的 onChange 函數上!你不加區別地使用 parseInt,如果給定一個非數字值,parseInt 可以返回 NaN!另外,你的 onChange 有點奇怪,當它運行時(在任何輸入更改上),它會在每次輸入發生更改時檢查每個輸入。除非您希望它們有某種聯系,否則這是不必要的。您可以在 onChange 中為它們提供索引,以便在您的狀態中訪問它們,然后在 onChange 函數中使用它。就像這樣。


const onChange = (event, index) => {

...etc

inputs[index].data = parseInt(e.target.value);

// fix your NaN problem around here

...etc


}

渲染你的組件:


{data.map((item, i) => {

      const bgcolor = RangeSliderColors(item.name);

      return (

      <div

        key={i}

        style={{

          display: "flex",

          flexDirection: "column",

          marginTop: "100px"

        }}

      >

      <RangeSlider

        name={item.name}

        value={item.data}

        width={20}

        min={0}

        minValue={10}

        step={item.data > item.min ? 1 : item.min}

        max={100}

        bgcolor={bgcolor}

        onChange={() => onChange(i)} // This will let you know which one is changed.

      />

    </div>

  );

})}


查看完整回答
反對 回復 2023-12-25
  • 3 回答
  • 0 關注
  • 220 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號