title: Failed prop type: The prop `actions` is marked as required in `Testing`, but its value is `undefined`
body: <p>I am creating a simple login form using React and Redux. My <code>app.js</code> is:</p>
  
  <pre><code>import React from 'react';
  import { render } from 'react-dom';
  import Input from 'react-toolbox/lib/input';
  import {Button, IconButton} from 'react-toolbox/lib/button';
  import PropTypes from 'prop-types';
  import * as loginAction from '../actions/loginAction';
  
  class Testing extends React.Component {
      onLoginFormSubmit(event) {
          event.preventDefault();
          this.props.actions.Testing(this.state.username, this.state.password);
      }
      handleChange(name, value){
          let state = this.state;
          state[name] = value;
          this.setState({state});
          console.log(name); // cannot read property of null
          console.log(value); // cannot read property of null
      }
  
      render() {
          console.log(this.props);
          return (
              &lt;div&gt;
                  &lt;form name="Login" onSubmit={(e) =&gt; this.onLoginFormSubmit(e)}&gt;
                      &lt;Input type="text" name="username" value="" placeholder="Email Id"  tabIndex="1" onChange={this.handleChange.bind(this, 'username')} /&gt;
                      &lt;Input name="password" value="" placeholder="Password" type="password" tabIndex="2" onChange={this.handleChange.bind(this, 'password')} /&gt;                  &lt;Button type="submit" className="m-t-20 blue-btn" label="Sign in" tabIndex="3" /&gt; 
                  &lt;/form&gt;
              &lt;/div&gt;
          );
      }
  }
  Testing.propTypes = {
    loginAction: PropTypes.object.isRequired,
  
  };
  function mapStateToProps(state, ownProps) {
    return {
      loginResponse: state.loginResponse
    };
  }
  function mapDispatchToProps(dispatch) {
    return {
      actions: bindActionCreators(loginAction, dispatch)
    }
  }
  export default connect(mapStateToProps, mapDispatchToProps)(Testing);
  </code></pre>
  
  <p>loginAction.js file is:</p>
  
  <pre><code>export function loginError(error){
    return  { error, type: LOGIN_FAILED };
  }
  
  export function loginSuccess(response){
    return dispatch =&gt; {
      dispatch({ response, type: LOGIN_SUCCESS});
    };
  }
  
  export function loginRequest(username, password){
    const user = {username: username, password: password};
    return { user, type: LOGIN_ATTEMPT };
  }
  
  
  export function login(username, password) {
    console.log("User Data: ", username, password);
      return dispatch =&gt;
      fetch('url', {
        method: 'POST',
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({
          username: username,
          password: password
        }),
      })
      .then(response =&gt; {
        console.log("I'm here");
        if(response.status &gt;= 200 &amp;&amp; response.status &lt; 300){
          console.log("Response; ", response);
          dispatch(loginSuccess(response));
        } else {
          const error = new Error(response.statusText);
          error.response = response;
          dispatch(loginError());
          throw error;
        }
      })
      .catch(error =&gt; { console.log('Request Failed: ', error);});
    }
  </code></pre>
  
  <p>And loginReducer.js file is:</p>
  
  <pre><code>import {
    LOGIN_SUCCESS,
    LOGIN_FAILED,
    LOGIN_ATTEMPT
  } from '../actions/loginAction';
  import Immutable from 'immutable';
  
  const initialState = new Immutable.Map({
    username: '',
    password: '',
    isLoggingIn: false,
    isLoggedIn: false,
    error: null
  });
  
  export default function user(state = initialState, action){
    switch (action.type){
      case LOGIN_ATTEMPT:
        console.log("LOGIN_ATTEMPT: ",action.user);
        return state.merge({
          isLoggingIn: true,
          isLoggedIn: false,
          username: action.user.username,
          password: action.user.password
        });
  
      case LOGIN_FAILED:
        console.log("LOGIN_FAILED: ");
        return state.merge({
          error: action.error,
          isLoggingIn: false,
          isLoggedIn: false
        });
  
      case LOGIN_SUCCESS:
        console.log("LOGIN_SUCCESS: ",action);
        return state.merge({
          error: null,
          isLoggingIn: false,
          isLoggedIn: true
        })
        break;
  
      default:
        return state;
  
    }
  }
  </code></pre>
  
  <p>When running the page I am getting this error: Failed prop type: The prop <code>actions</code> is marked as required in <code>Testing</code>, but its value is <code>undefined</code>. Also <code>handleChange</code> method is throwing following error: <code>Uncaught TypeError: Cannot set property 'username' of null</code>.</p>
  
  <p><strong>Update:</strong> My store.js code is:</p>
  
  <pre><code>import { createStore, applyMiddleware } from 'redux';
  import { Provider } from 'react-redux';
  import thunk from 'redux-thunk';
  import user from '../reducers/loginReducer';
  
  const store = createStore(
    user,
    applyMiddleware(thunk)
  );
  var routes =(
      &lt;Provider store={store}&gt;
        &lt;Router history={browserHistory}&gt;
          &lt;Route path="/" component={Main}&gt;
          &lt;Route path="/testing" component={Testing}&gt;
        &lt;/Router&gt;
      &lt;/Provider&gt;
  );
  </code></pre>
  
  <p><sub>I don't want to use redux-form for now.</sub></p>