reactjs - 我的组件正在尝试访问尚不存在的数据,“无法读取未定义的属性‘数据’”
问题描述
我的组件试图 mapStateToProps 一些在用户输入和提交之前不存在的表单数据。该表单将获取输入,将其存储到 redux 中,然后我将能够获取该数据并在 API 调用后填充表
const StepOne = props => {
const [formObj, setFormObj] = useState({
rigName: "",
desc: "",
choices: [
{
choice: "",
customAttribute: ""
}
]
});
return (
some inputs fields
);
};
const mapStateToProps = state => {
return {
formData: state.stepOneForm.data
};
};
const mapDisptachToProps = disptach => {
return {
addFormIntoRedux: data => disptach(AddFormData(data))
};
};
export default connect(mapStateToProps, mapDisptachToProps)(StepOne);
我发现其他帖子建议我包含初始数据?或在渲染后进行检查,但我不确定那会是什么样子。我相信这些选项可能是解决方案,但不确定如何从这里开始。
解决方案
我认为这可以解决您的问题:
const mapStateToProps = state => {
return {
formData: state.stepOneForm ? state.stepOneForm.data : null,
};
};
null
对于未定义的情况,我将其用作默认值stepOneForm
,但您可以根据需要进行更改。
推荐阅读
- javascript - Redux 中的选择器 - React 组件了解 redux 状态意味着什么?
- angular - 将 FormArray 与来自响应和 mat-checkbox 的对象一起使用
- c++ - 如何释放为指针变量本身提供的内存?
- function - 如何使函数内计算的根可用于函数外
- regex - 脚本中的命令
- python - 当我使用 tf.estimator 时,我可以在每个时期更改输入数据吗?
- flutter - 键盘关闭 Flutter 中的 Modal BottomSheet
- android - 颤振列表
没有得到所有的价值 - python - 为什么 python 在使用 csv.writer 和 QUOTE_NONNUMERIC 时会崩溃
- jquery - JQuery Validation,单击两次以使其工作