我正在使用 React Native。我已经查看过什么是未处理的承诺拒绝?,但我完全看不懂。
当我创建一个组件时:
render(){
const MenuComponent = (
<MenuScreen CloseSlideMenu={this.SlideMenu.CloseSlideMenu} />
)
...
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
'可能未处理的承诺拒绝(ID:0)类型错误:未定义不是函数(评估'_this.OpenSlideMenu.bind(true)。then(function(){}))'
this.OpenSlideMenu()
在constructor()
.
constructor (props, context) {
super(props, context)
this.OpenSlideMenu = this.OpenSlideMenu.bind(true).catch(function(e){
console.log("Promise Rejected");
});
this.CloseSlideMenu = this.CloseSlideMenu.bind(true).catch(function(e){
console.log("Promise Rejected");
});
}
Run Code Online (Sandbox Code Playgroud)
this.drawer 在 render() 方法中声明:
render () {
const MenuComponent = (
<MenuScreen CloseSlideMenu={this.SlideMenu.CloseSlideMenu} />
)
return (
<Drawer
ref={(ref) => this.drawer = ref}
content={MenuComponent}
tapToClose={true}
openDrawerOffset={170}
stles={drawerStyles}
panCloseMask={0.2}
closedDrawerOffset={-3}
styles={drawerStyles}
tweenHandler={(ratio) => ({
main: { opacity: (2-ratio)/2 } …
Run Code Online (Sandbox Code Playgroud) 我有以下TextInput组件:
<TextInput value={this.state.inputText}
maxLength={1}
onSubmitEditing={this.textHandler}
onChangeText={(text) => this.setState({inputText: text})} />
Run Code Online (Sandbox Code Playgroud)
当我将输入更改为”并提交(在TextInput中)时,出现以下错误:“失败的prop类型:提供给'TextInput'的'object'类型的无效prop'value'
我尝试删除每个回调,显然是由于“ onSubmitEditing”而引发了错误。
textHandler = (text) => {
if(text == '' || text == '-' ){
text = '0';
}
this.setState({inputText: text});
}
Run Code Online (Sandbox Code Playgroud)
如何使回调仅在文本是字符串而不是对象的情况下被调用?