【发布时间】:2019-10-06 20:15:40
【问题描述】:
我正在使用 gatsby 并且有一个功能组件,它循环一些数据以创建带有 onchange 事件和选中项的单选按钮组。当我更新状态时,整个页面组件会重新呈现。我虽然添加备忘录是为了阻止这种情况,但它似乎不起作用。
这里是代码
const BikePage = React.memo(({ data }) => {
console.log("page data", data)
const [selectedColor, setColor] = useState(data.bike.color[0])
const onColorChange = e => {
setColor(e.target.value)
}
return (
<div>
{data.treatment.price.map((value, index) => {
return (
<div>
<input
id={`bike-option-${index}`}
name="treatment"
type="radio"
value={value}
checked={selectedColor === value}
onChange={e => onColorChange(e)}
/>
<label
htmlFor={`treatment-option-${index}`}
>
{value}
</label>
</div>
)
})}
<Link
to="/book"
state={{
bike: `${data.bike.title}-${selectedColor}`,
}}
className="c-btn"
>
Book Now
</Link>
</div>
)
});
【问题讨论】:
标签: javascript reactjs react-hooks gatsby