Как обновить mobx store с помощью слайдера из Material UI

#reactjs #material-ui #slider #mobx

#reactjs #материал-пользовательский интерфейс #слайдер #mobx

Вопрос:

Я обновил свой код для использования MobX, но у меня возникли проблемы с определением того, что использовать для слайдера.

в магазине у меня есть:

   lowValue: "200",
  highValue: "2000",
  updateLowValue: lowvalues => {
    store.lowValue = lowvalues
  },
 

и в функциональном компоненте у меня есть:

   const ValueLowSelection = () => {
const store = React.useContext(StoreContext);

return useObserver(() => (
  (
    <>
      <Typography id="discrete-slider-small-steps" gutterBottom>
        Low Value: {store.lowValue}
      </Typography>
      <Slider
        value={store.lowValue} onChange={changeEvent => 
        {store.updateLowValue(changeEvent.target.value)}} 
        aria-labelledby="discrete-slider-small-steps"
        step={10}
        min={0}
        max={1000}
        valueLabelDisplay="auto"
      /></>
  ))
)}
 

Когда я переключаю все это обратно в состояния, все работает просто отлично, но сейчас оно отображается как NaN. Чего мне не хватает?

Спасибо

** редактировать ** https://codesandbox.io/s/quirky-mccarthy-fnup1 Ссылка на CodeSandbox

Ответ №1:

Если вы проверите onChange сигнатуру функции в документации, вы увидите, что вторым аргументом, заданным onChange функции, является значение, которое вам нужно.

 <Slider
  value={store.lowValue}
  onChange={(event, value) => {
    store.updateLowValue(value);
  }}
  aria-labelledby="discrete-slider-small-steps"
  step={10}
  min={0}
  max={1000}
  valueLabelDisplay="auto"
/>