react-native - 错误:操作必须是普通对象。使用自定义中间件进行异步操作。(反应原生)
问题描述
我正在努力做到这一点,如果一个被调用的项目code
没有设置为 redux 的状态,它会被调用AsyncStorage
并设置状态。
import {AsyncStorage} from 'react-native'
import { connect } from 'react-redux';
import {bindActionCreators} from 'redux'
import {handlePhoneNumber, saveCode} from './../../actions/RegistrationActions';
class EnterPhoneNumberScreen extends React.Component {
componentDidMount() {
let code = this.props.registration.code;
console.log("code is", code);
if(code){
// Do nothing
}else{
console.log("in the else");
this.props.getAndSetCode();
}
}
}
const getAndSetCode = () => dispatch => {
console.log("in get and set Code");
AsyncStorage.getItem('code')
.then((data) => {
console.log("data is ", data);
dispatch(saveCode(data));
console.log("in getAndSetCode method, Code is ", data);
})
}
const mapDispatchToProps = dispatch => (
bindActionCreators({
handlePhoneNumber,
getAndSetCode: () => dispatch(getAndSetCode()),
}, dispatch)
);
export default connect(mapStateToProps, mapDispatchToProps)(EnterPhoneNumberScreen);
控制台输出以下内容:
LOG code is null
LOG in the else
LOG in get and set Code
LOG data is 3tgvgq
LOG in getAndSetCode method, Code is 3tgvgq
我知道 thunk 已正确安装,因为它在应用程序的其他地方运行。 saveCode
只是一个正常的动作:
export const saveCode = code => ({
type: "SAVE_CODE",
payload: code
})
而这个错误出现在iphone11模拟器中:
我该如何解决?
解决方案
推荐阅读
- python - 如何在 Python 中使用多线程安全地修改全局 numpy 数组?
- arrays - SWIFT 按日期对数组进行排序
- javascript - 我可以使用 javascript 变量在 jQuery Datepicker 上设置 yearRange 吗?
- python - Python/Jupyter Notebook 找不到模块...?
- php - 通过作曲家自动加载类不起作用
- azure - 将新的本地 Windows 2019 Server 加入 Azure AD
- docker - docker-compose 和 Dockerfile 不安装 drupal
- kotlin - 在 [Kotlin] 中强制货币格式
- javascript - 当父div隐藏溢出时如何向div添加滚动条
- ms-access - .bat 文件中的动态用户