Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将道具传递给Javascript映射中的另一个组件?_Javascript_Reactjs_Redux - Fatal编程技术网

如何将道具传递给Javascript映射中的另一个组件?

如何将道具传递给Javascript映射中的另一个组件?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有这个密码 import React from 'react'; import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; import 'materialize-css/sass/materialize.scss'; import 'font-awesome/scss/font-awesome.scss'; import Storage from './Storage.js' import {

我有这个密码

import React from 'react';
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import 'materialize-css/sass/materialize.scss';
import 'font-awesome/scss/font-awesome.scss';
import Storage from './Storage.js'
import {fetchStorage, loadAddStorageModal, selectStorage} from '../actions/StorageActions.js'


class SideNavContainer extends React.Component {
    componentWillMount() {        
        this.props.fetchStorage();
    }
    render() {
             console.log(this.props);
        return (
            <ul id="slide-out" className="side-nav fixed">      
                {
                    var hold = this.props;
                    this.props.storages.fetchedStorages.map(function (storage, i) {
                        return <Storage key={i} >{storage.name}</Storage>
                    })
                }
                <li>
                    <a className="waves-effect waves-light" onClick={() => this.props.loadAddStorageModal(true)}><i className="fa fa-plus" aria-hidden="true">Add</i></a>
                </li>
                <li className="hide-on-large-only"><a href="/Home/Index">Home</a></li>
                <li className="hide-on-large-only"><a href="/Account/SignOut">Signout</a></li>
            </ul>
        )
    }
}

function mapStateToProps(state) {
    return {
        storages: state.storages
    };
}

function matchDispatchToProps(dispatch){
    return bindActionCreators({fetchStorage: fetchStorage, loadAddStorageModal: loadAddStorageModal, selectStorage: selectStorage }, dispatch);
}


export default connect(mapStateToProps, matchDispatchToProps)(SideNavContainer);
从“React”导入React;
从'react redux'导入{connect};
从“redux”导入{bindActionCreators};
导入“MaterializeCSS/sass/materialize.scss”;
导入'font-awesome/scss/font-awesome.scss';
从“./Storage.js”导入存储
从“../actions/StorageActions.js”导入{fetchStorage,loadAddStorageModal,selectStorage}
类SideNavContainer扩展了React.Component{
componentWillMount(){
this.props.fetchStorage();
}
render(){
console.log(this.props);
返回(
    { var hold=this.props; this.props.storages.fetchedStorages.map(函数(storage,i){ 返回{storage.name} }) }
) } } 函数MapStateTops(状态){ 返回{ 存储:state.storages }; } 功能匹配DispatchToprops(调度){ 返回bindActionCreators({fetchStorage:fetchStorage,loadAddStorageModal:loadAddStorageModal,selectStorage:selectStorage},dispatch); } 导出默认连接(mapStateToProps、matchDispatchToProps)(SideNavContainer);
我正在尝试将“this.props”传递到我的存储组件中。我试着去做

 return <Storage {...this.props} key={i} >{storage.name}</Storage>
返回{storage.name}
但我相信范围已经改变了,所以不再有效。我试图把它放在一个名为“hold”的变量中,但这只会使整个应用程序崩溃,因为它说“var”是一个意外的标记。

使用自动绑定
this

this.props.storages.fetchedStorages.map((storage, i) => {
  return <Storage key={'storage-' + i} {...this.props}>{storage.name}</Storage>;
});
this.props.storages.fetchedStorages.map((存储,i)=>{
返回{storage.name};
});

很酷。我只是看了看,我觉得通过所有的道具太过分了。我怎么能从action creator传入selectStorage?我可以使用“bind”{this.props.selectStorage.bind(this)}获得它,但使用自动绑定无法获得它。也许我做得不对尝试将
var-hold=…
移动到
return
语句之前。