Reactjs “的必要性是什么?”;“导出默认连接”;将react组件连接到redux存储时
我试图在同一个jsx文件中创建一些组件。我想将其中一个子组件连接到存储(这里感觉不对),而不将HOC组件连接到存储。 因此,在连接子组件时,他不使用导出默认连接。它会创建一个错误,说明操作未定义 示例代码Reactjs “的必要性是什么?”;“导出默认连接”;将react组件连接到redux存储时,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我试图在同一个jsx文件中创建一些组件。我想将其中一个子组件连接到存储(这里感觉不对),而不将HOC组件连接到存储。 因此,在连接子组件时,他不使用导出默认连接。它会创建一个错误,说明操作未定义 示例代码 class Test1 extends React.Component { constructor(props) { **** } render(){ **** } } function mapActionsToProps(dispatch) { r
class Test1 extends React.Component {
constructor(props) {
****
}
render(){
****
}
}
function mapActionsToProps(dispatch) {
return {
actions: {
testAction: bindActionCreators(testActionFromActions, dispatch)
}
}
connect(mapStateToProps,mapActionsToProps) (Test1);
class Test2 extends React.Component {
constructor(props){
***
}
render(){
return (<Test1/>);
}
}
export default Test2;
类Test1扩展了React.Component{
建造师(道具){
****
}
render(){
****
}
}
函数mapActionsToProps(调度){
返回{
行动:{
testAction:bindActionCreators(testActionFromActions,分派)
}
}
连接(MapStateTrops、mapActionsToProps)(测试1);
类Test2扩展了React.Component{
建造师(道具){
***
}
render(){
返回();
}
}
导出默认Test2;
我的问题是为什么我们总是需要使用连接作为导出默认连接。是否有其他方法进行连接
提前感谢。connect()返回一个新连接的组件。
事实上,connect()将您的组件包装在一个新组件中,添加了一些有用的功能,这就是为什么您通常导出connect函数(新组件)的返回值
在你的情况下,你应该这样做
class Test1 extends React.Component {
constructor(props) {
****
}
render(){
****
}
}
function mapActionsToProps(dispatch) {
return {
actions: {
testAction: bindActionCreators(testActionFromActions, dispatch)
}
}
const ConnectedTest1 = connect(mapStateToProps,mapActionsToProps) (Test1);
class Test2 extends React.Component {
constructor(props){
***
}
render(){
return (<ConnectedTest1/>);
}
}
export default Test2;
类Test1扩展了React.Component{
建造师(道具){
****
}
render(){
****
}
}
函数mapActionsToProps(调度){
返回{
行动:{
testAction:bindActionCreators(testActionFromActions,分派)
}
}
const ConnectedTest1=connect(mapStateToProps,mapActionsToProps)(测试1);
类Test2扩展了React.Component{
建造师(道具){
***
}
render(){
返回();
}
}
导出默认Test2;
通过进一步研究,我找到了一种治疗方法:D connect总是返回一个函数。在我给出的示例中,我输入Test1作为connect函数的参数 因此,我们需要将返回的函数分配给一些变量或常量。之后,我可以导出组件(ConnectedComponent)或在同一文件中重用它 链接帮助我理解这一点
希望这个答案能对其他人有所帮助。
connect
正如名字听起来将您的组件与Redux应用商店相连接。如果没有Redux的连接方法,您无法连接/交互组件。希望这有帮助。谢谢。Adeel Imran。是的。connect不一定总是导出默认连接。您可以使用命名的导出t哦。谢谢Brendan解决了这个问题。再次感谢。换句话说,它会让组件拥有道具和动作。映射themconst ConnectedTest1应该包括mapDispatchToProps而不是mapActionsToProps,如果我没有弄错的话:)谢谢这帮了我!顺便说一句,我做了这件事:导出{ConnectedTest1 as Test1}
不使用其他组件:)您可以使用下面的代码进行导出。const ConnectedComponent=connect(MapStateTrops,mapActionsToProps)(Test1);
将{ConnectedComponent导出为Test1}