Javascript 在onChangeText make中输入设置值;超过最大调用堆栈大小;

Javascript 在onChangeText make中输入设置值;超过最大调用堆栈大小;,javascript,react-native,Javascript,React Native,我的视图层次结构: A extends Component { render(this.props.innerView()) } B extends Component { render( <A innnerView={this._renderInnerView}/> ) } 扩展组件{ 渲染(this.props.innerView()) } B扩展组件{ 渲染( ) } 我的innerView包含一个TextInput 在Android中,我的

我的视图层次结构:

A extends Component {
   render(this.props.innerView())
}

B extends Component {
   render(
      <A innnerView={this._renderInnerView}/>
   )
}
扩展组件{
渲染(this.props.innerView())
}
B扩展组件{
渲染(
)
}
我的innerView包含一个TextInput

在Android中,我的文本输入如下:

<TextInput
                style={{flex: 1}}
                autoCapitalize='none'
                placeholder={strings.addLinkTitleHint}
                keyboardType='default'
                enablesReturnKeyAutomatically={true}
                autoCorrect={false}
                onChangeText={(text) => {
                    console.log("text : ", text);
                    if (this.state.modifyingTitle === text) {
                        return;
                    }
                    this.setState({
                        modifyingTitle: text
                    })
                }}
                underlineColorAndroid='rgba(0,0,0,0)'
                value={this.state.modifyingTitle}
            />
{
日志(“文本:”,文本);
if(this.state.modifyingTitle==文本){
返回;
}
这是我的国家({
修改标题:文本
})
}}
下生色类='rgba(0,0,0,0)'
值={this.state.modifyingTitle}
/>
我只能得到一次日志信息,几秒钟后,我得到“超过最大调用堆栈大小”错误


我发现A中的render方法被多次调用,但我不知道如何解决它。

这可能与将值绑定到状态有关,而且
setState
是异步的(设置一个链,其中
modifyingTitle
永远不等于
text
。如果您的状态是组件的本地状态,您不必担心将输入的值绑定到状态,因为对输入的任何更改都应该反映在状态中(我想不出有什么方法可以使其不同步).

我需要根据this.state.modifyingtitle为这个文本输入设置值,所以我只需要写“value={this.state.modifyingtitle}”并在onchangetext中更新此状态我的意思是我需要设置textInput的初始值可能会在组件构造函数中拉出
modifyingTitle
的初始值,并将其放入非状态变量中,并将其绑定到
,以便在更改时不会触发
changeText
事件e总是那个变量,它是不可能的changed@yifan_z我面临着同样的问题…你有没有遇到任何解决方案?