TypeError: expected dynamic type 'string', but had type 'object'
2017-07-15 10:28
405 查看
将React Native的版本升级到最新的0.45.1之后,出现如下错误:
通过调试无法定位错误的地方,于是从错误提示入手,注意到错误发生在调用方法showAlert的时候,猜测是Alert参数类型出错,回头看使用Alert的地方,代码如下:
很明显,error为object 不是 string,查看Alert.js的源码,如下:
可见参数message为string类型,修改如下,重新run不再报错:
注:
Alert.js的本地路径为:
your react_native project/node-modules/react-native/Libraries/Alert/Alert.js
或Github地址:
https://github.com/facebook/react-native/blob/0a712f5335d1bf04c4ff93a79b14c9e23dbd5831/Libraries/Alert/Alert.js
通过调试无法定位错误的地方,于是从错误提示入手,注意到错误发生在调用方法showAlert的时候,猜测是Alert参数类型出错,回头看使用Alert的地方,代码如下:
... .catch(error => { Alert.alert('提示', error, [ {text:'确定' }]) this.state.logining = false; }) ...
很明显,error为object 不是 string,查看Alert.js的源码,如下:
class Alert { static alert( title: ?string, message?: ?string, buttons?: Buttons, options?: Options, type?: AlertType, ): void { if (Platform.OS === 'ios') { if (typeof type !== 'undefined') { console.warn('Alert.alert() with a 5th "type" parameter is deprecated and will be removed. Use AlertIOS.prompt() instead.'); AlertIOS.alert(title, message, buttons, type); return; } AlertIOS.alert(title, message, buttons); } else if (Platform.OS === 'android') { AlertAndroid.alert(title, message, buttons, options); } } }
可见参数message为string类型,修改如下,重新run不再报错:
... catch(error => { Alert.alert('提示', error.message, [ {text:'确定' }]) this.state.logining = false; }) ...
注:
Alert.js的本地路径为:
your react_native project/node-modules/react-native/Libraries/Alert/Alert.js
或Github地址:
https://github.com/facebook/react-native/blob/0a712f5335d1bf04c4ff93a79b14c9e23dbd5831/Libraries/Alert/Alert.js
相关文章推荐
- python写入文本报错TypeError: expected a string or other character buffer object
- had objects of type "java.lang.String" but expected signature "org.apache.struts.upload.FormFile"
- 解决:error: Cannot fetch repo (TypeError: expected string or buffer)
- Java解析HttpClient获取的Json字符串报错Expected BEGIN_OBJECT but was STRING
- Python出现: TypeError: expected string or buffer
- spark 报错ypeError: expected string or Unicode object, NoneType found
- python smtplib TypeError: expected string or buffe
- django 接受post请求json.dumps()的时候会引发TypeError: 'expected string or buffer'错误
- 【tensorFlow】tf.reshape()报错信息 - TypeError: Expected binary or unicode string, got -1
- TypeError: string argument expected, got 'bytes'
- android Error:Error: Expected resource of type string [ResourceType]
- html内容写入到文件中的时候出现‘TypeError: expected a character buffer object’错误
- Python学习笔记:学习爬虫时遇到的问题TypeError: cannot use a string pattern on a bytes-like object 与解决办法
- Python学习笔记:学习爬虫时遇到的问题TypeError: cannot use a string pattern on a bytes-like object 与解决办法
- TypeError: expected string or buffer
- TypeError: expected string or bytes-like object
- TypeError: cannot use a string pattern on a bytes-like object解决方法
- a=re.findall('b',c)报错提示:TypeError:expected string or buffer
- TypeError: expected a character buffer object
- Python3.5 TypeError: cannot use a string pattern on a bytes-like object问题解决