我遇到了以下问题:每次我更新redux存储中的searchString时,我传递给Griddle的CustomFilterConnectedComponent都会失去焦点,我不明白为什么会发生这种情况。
这是我的基于documentation的代码
哑巴组件:
import { connect } from "react-redux";
const CustomFilterComponent = (props) => (
<input
value={props.searchString}
onChange={(e) => { props.setSearchString(e.target.value); }}
/>
);智能组件:
const CustomFilterConnectedComponent = connect(
(state: TRootReducerState) => {
return ({
searchString: state.searchString,
});
},
(dispatch: any) => ({
setSearchString: (e) => dispatch(setSearchStringActionCreator(e))
})
)(CustomFilterComponent);用法:
class SomePage extends React.Component<Props, {}> {
render() {
return (
<div>
{/* keypress - everything is ok, value is updated & focus is not lost*/}
<CustomFilterConnectedComponent/>
<Griddle
components={{
/* keypress - value is updated, but focus lost */
Filter: CustomFilterConnectedComponent
}}
storeKey="griddleStore"
data={this.props.requests as any}
/>
</div>
);
}
}这是github上这个问题的link。
发布于 2017-11-14 15:14:53
我已经把你的复制品变成了story,看不到你的焦点问题。
也就是说,我最好的猜测是,这个问题与如何向SomePage提供props.requests有关。
https://stackoverflow.com/questions/47229902
复制相似问题