2017-06-03 163 views
1

我不能爲我的生活找出爲什麼我的組件不在頁面中渲染,而且它的渲染爲<signinform></signinform>。我正在使用react-form,但我不認爲這與渲染沒有任何關係。子組件不渲染

signin.js

import React from 'react'; 
import { connect } from 'react-redux'; 
import { NavLink } from 'react-router-dom' 
import {BlockForLoggedInUsers} from '../shared/auth/userRedirects' 
import Logo from '../shared/logo'; 
import userStyles from '../shared/userPages/userPages.css'; 
import showResults from './showResults'; 
import signInForm from './signInForm'; 

class SignIn extends React.Component { 
    constructor(props) { 
    super(props); 
    } 

    render(){ 
    return (
     <div className={userStyles.home}> 
     <BlockForLoggedInUsers /> 
     <Logo /> 
     <signInForm onSubmit={showResults}/> 
     <div className={userStyles.extraDetails}> 
      <NavLink to="/signup">Don't have an account yet?</NavLink> 
      <NavLink to="/skip" className={userStyles.extraDetailsRight}>Skip</NavLink> 
     </div> 
     </div> 
    ); 
    } 
} 

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

export default connect(mapStateToProps)(SignIn); 

signInForm.js

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

const signInForm = props => { 
    const { handleSubmit, pristine, submitting } = props; 
    return (
    <div> 
     <form role="form" onSubmit={handleSubmit}> 
     <Field name="email" component="input" type="text" placeholder="Enter email address"/> 
     <button type="submit" disabled={pristine || submitting}>Sign In</button> 
     </form> 
    </div> 
); 
}; 

export default reduxForm({ 
    form: 'signInForm', 
})(signInForm); 

HTML輸出 enter image description here

+1

我認爲這裏的問題可以用這個答案解決https://stackoverflow.com/questions/41216654/react-adding-component-after-ajax-to-view/41216726#41216726 –

回答

0

反應的組分的名稱應大寫 - S o只需將組件名稱從signInForm更改爲SignInForm即可。請檢查反應doc瞭解更多詳情。

+1

賓果!簡單正確的答案有:D –

+0

@JamieHutber,它是上述答案的副本,然後:) –