gpt4 book ai didi

reactjs - 如何在 redux 表单中访问 redux 存储

转载 作者:行者123 更新时间:2023-12-03 14:09:06 25 4
gpt4 key购买 nike

我是react-redux世界的新手,如果我遗漏了什么,请纠正我:

基本上,我试图通过 redux 存储访问主机名并在表单中使用它。截至目前,我只是在 redux 表单中使用主机名引用 window.location,但我想通过 redux 存储/通过任何其他更好的方法访问主机名,以便我可以保持函数纯净?想法?

谢谢

编辑:

import React from 'react'
import { Field, reduxForm } from 'redux-form'

const SimpleForm = (props) => {
const { handleSubmit, pristine, reset, submitting } = props
// goal is to prevent this here and do it via redux store or
// any other options
// so I can avoid external calls inside pure function
const hostName = window.location.hostname;

return (
<form onSubmit={handleSubmit}>
<div>
<label>First Name</label>
<div>
<Field name="firstName" component="input" type="text" placeholder="First Name"/>
</div>
</div>
</form>
)
}

export default reduxForm({
form: 'simple' // a unique identifier for this form
})(SimpleForm)

问题:

如何将窗口对象存储在 redux 存储中,是否可以通过 redux 存储以 redux 形式访问它们,或者是否会响应路由器帮助?

最佳答案

您应该将表单连接到 Redux 状态。

import { connect } from 'react-redux'

export default reduxForm({
form: 'simple' // a unique identifier for this form
})(connect(mapStateToProps)(SimpleForm)

然后:

const mapStateToProps = state => {
return {
hostName: state.reducerName.hostName
}
}

这样你就可以通过this.props.hostName访问它,考虑到hostName之前已经在reducer中设置了。

如果您使用React Router ,您可以访问history通过 props 对象,它也有 location 属性。

关于reactjs - 如何在 redux 表单中访问 redux 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45846162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com