我有两个组成部分:
在我的父组件中,我有:
//set focus object to false // include Child Component and React libraries const parent = React.createClass({ getInitialState: function() { return { focus: false }; }, render() { return( ); }, _handleClick: function() { this.setState({focus: !this.state.focus}); }, };
在我的Child组件中,我有一个输入标签:
const child = React.createClass({ render() { return(); }, componentWillReceiveProps: function() { this.refs.input.focus(); }, };
总之,我在我的方法中尝试做的是通过更改prop调用componentWillReceiveProps来专注于输入标记.但是现在这不起作用.它最终只关注锚标签.我知道我做错了什么?
编辑:进一步详细说明我的问题是,一旦我点击锚标记,子组件中的输入元素就不会被关注.我怎样才能让它专注于?
componentWillReceiveProps
在孩子的render
方法之前执行.因此,在重点关注元素后,render
很可能会破坏input
元素.最有可能你可以改变componentWillReceiveProps
到componentDidUpdate
,你会好到哪里去.