gpt4 book ai didi

javascript - 样式化的组件输入失去对变化的关注

转载 作者:行者123 更新时间:2023-11-30 11:02:29 25 4
gpt4 key购买 nike

当使用带有 styled-components 的 html 输入时并保存值以使用 onChange 对状态使用react,组件似乎在每次状态更改时重新呈现并导致输入失去焦点。有什么方法可以防止输入失去焦点吗?为什么会这样? Here is an example .

class MyComponent extends React.Component {
state = { val: "" };

render() {
const Input = styled.input`
border-radius: 6px;
`;

return (
<Input
value={this.state.val}
onChange={e => this.setState({ val: e.target.value })}
/>
);
}
}

最佳答案

在每次渲染时,您都会生成一个新的Input,因此会失去焦点。

将样式与组件解耦:

const Input = styled.input`
border-radius: 6px;
`;

class MyComponent extends React.Component {
state = { val: "" };

render() {
return (
<Input
value={this.state.val}
onChange={e => this.setState({ val: e.target.value })}
/>
);
}
}

关于javascript - 样式化的组件输入失去对变化的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57096907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com