reactjs - 将状态传递给 sibling onChange

标签 reactjs

我有一个包含 <input type="range"></input> 的组件元素。在该组件中,我有一个函数可以在移动该 slider 时更改状态。

我不仅希望能够使用该状态来更改 span Slider 内的标签组件以及将呈现相同值的其他 2 个同级组件。

因此,当我移动该 slider 时,我想看到屏幕上多个位置的值发生变化。

Slider.jsx

function Slider() {
  const [value, setValue] = useState(0.50)

  const handleChange = (event) => {
    setValue(event.target.value);
  }

  return (
    <div className='slider'>
      <div className="label">
        <label htmlFor="value">Value</label>
        <span>{value}</span>
      </div>
      <input onChange={handleChange} type="range" id="value" name="value" min="0.00" max="100.00" step='0.01'></input>
    </div>
  )
}

Component1.jsx

function Component1() {

  return (
    <div>
      <p>{value}</p>
    </div>
  )
}

Component2.jsx

function Component2() {

  return (
    <div>
      <p>{value}</p>
    </div>
  )
}

这是我的应用程序的结构,如您所见Component1Component2Slider的 sibling .

├── App.js
├── components
│   ├── Slider.jsx
│   ├── Component1.jsx
│   └── Component2.jsx

最佳答案

有专门针对这种情况的React hook,useContext。调查一下here .

我还找到了this tutorial在这个话题上很有帮助。

关于reactjs - 将状态传递给 sibling onChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65979237/

相关文章:

node.js - Next.js:ComponentWillMount 与 getInitialProps

html - UseParallax ref hook 不适用于 NextJs 中的组件

Javascript - CreateStore - 将多个函数仅作为一个参数传递 - Redux - React Native

javascript - 在父组件中测试子组件的按钮

node.js - socket.io 客户端在 native react 中接收对同一事件的多次调用

reactjs - Spotify 隐式授权流程与 React - 用户登录

javascript - 未处理的拒绝(类型错误): this is undefined when write this. setState(数据);在 componentDidMount 函数中

reactjs - 忽略错误 className did not match Server and Client in Gatsby

javascript - 为什么这个 Typescript 导出未定义?

reactjs - 解析错误 : JSX value should be either an expression or a quoted JSX text