Я новичок-я sh Реагирую и пытаюсь mimi c более сложную версию следующего сценария:
- У меня есть родительский компонент, который имеет переменную состояния.
- У меня есть дочерний компонент, которому я передаю функцию, которая обновляет переменную состояния в родительском элементе.
- В моей родительской функции я хочу иметь возможность сбросить переменную состояния, которая может быть у дочернего элемента. изменено.
- Я хочу, чтобы дочерняя функция отражала сброс, инициированный родителем.
В моем реальном примере, который я имитирую здесь, на шаге 2, много вещей изменение в ответ на обновление значения состояния, а не просто прямое обновление значения. Я хочу обеспечить «сброс» в моем родителе, который, в свою очередь, должен быть отражен в этом одном дочернем компоненте, имеющем ползунок диапазона.
Вот мой простой пример:
import React, { useState } from "react";
export const App = () => {
const [rangeValue, setRangeValue] = useState(0)
const reset = (e) => {
e.preventDefault()
setRangeValue(0)//reset state to 0 in App
//how can I get the initial Position in Range component back to 0?
}
return (
<div>
<p>The range value is: {rangeValue}</p>
<Range setRangeValue = {setRangeValue}/>
<p><a href="/#" onClick={reset}>reset</a></p>
</div>
)
}
const Range = ({setRangeValue: setRangeValue}) =>
{
const handleChange = (event) => {
setRangeValue(event.target.value)
}
return (
<input
type="range"
min="0"
max="10"
step="1"
defaultValue={0}
onChange={(event) => {handleChange(event)}} />
)
}
export default App;
Вот песочница с кодом: https://codesandbox.io/s/github/FergusDevelopmentLLC/range-test
Как правильно реализовать sh такую идею?