рдореИрдВ React Quickly
рдкреБрд╕реНрддрдХ рд╕реЗ рдПрдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдФрд░ рдореИрдВ рдмреЗрдмреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ред
рдореЗрд░реЗ рдХреЛрдб рдХреА рддрд░рд╣ рд╣реИ:
class DateTimeNow extends React.Component{
render(){
let dateTimeNow = new Date();
return <span>Current date and time is {dateTimeNow}.</span>;
}
}
ReactDOM.render(
<DateTimeNow/>,
document.getElementById('content')
);
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ:
Uncaught Invariant Violation: Objects are not valid as a React child (found: Mon Oct 17 2016 09:12:00 GMT+0800 (CST)). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of
рдбреЗрдЯрдЯрд╛рдЗрдо рдЕрдм .
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛?
рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдХреНрдпрд╛ рдЖрдк _feature_ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ _bug_ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢: рдЕрдирдХреИрдкреНрдб рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯ рдЙрд▓реНрд▓рдВрдШрди: рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВ (рдкрд╛рдпрд╛ рдЧрдпрд╛: рд╕реЛрдо рдЕрдХреНрдЯреВрдмрд░ 17 2016 09:12:00 GMT+0800 (CST))ред рдпрджрд┐ рдЖрдк рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдРрдб-рдСрди рд╕реЗ createFragment(object) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓рдкреЗрдЯреЗрдВред DateTimeNow
рдХреА рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдЬрд╛рдВрдЪреЗрдВред
рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ https://jsfiddle.net рдпрд╛ рд╕рдорд╛рди (рдЯреЗрдореНрдкрд▓реЗрдЯ: https://jsfiddle.net/reactjs/69z2wepo/) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рдбреЗрдореЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдЕрд╡рдзрд┐ рдЯреИрдЧ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
рд░рд┐рдПрдХреНрдЯ рдХреЗ рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ рдХреМрди рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдУрдПрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ?
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 15.3.2
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА dateTimeNow рдЪрд░ рдкрд░ toString()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджрд┐рдирд╛рдВрдХ _object_ рд╣реИ, рди рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрд╛рдиреА 'рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕' рдореЗрдВ рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХрд╛ рдЬрд┐рдХреНрд░ рд╣реИред
return <span>Current date and time is {dateTimeNow.toUTCString()}.</span>;
рдЙрд╕ рдиреЗ рдХрд╣рд╛, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╢реБрд░реВ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд░реАрдЦ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк {dateTimeNow}
рдХреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдЬреИрд╕реЗ { {a: 1} }
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ:
Uncaught Error: Objects are not valid as a React child (found: object with keys {a}).
https://github.com/facebook/react/issues/7988#issuecomment -254148427 рд╕рд╣реА рд╣реИред
рдЬреЗрдПрд╕ рдореЗрдВ рддрд┐рдерд┐рдпрд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд░реЗрдВрдбрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рд░рд┐рдПрдХреНрдЯ рддрддреНрд╡, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдХрд┐рд╕реА рднреА toString()
рдЬреИрд╕реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЖрдк MDN рдкрд░ рдРрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЪреАрдпрд░реНрд╕!
рд░рд┐рдПрдХреНрдЯ рд╣рдорд╛рд░реЗ рд▓рд┐рдП .toString()
рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдУрд╡рд░рд╣реЗрдб?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА dateTimeNow рдЪрд░ рдкрд░
toString()
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджрд┐рдирд╛рдВрдХ _object_ рд╣реИ, рди рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрд╛рдиреА 'рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕' рдореЗрдВ рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХрд╛ рдЬрд┐рдХреНрд░ рд╣реИредрдЙрд╕ рдиреЗ рдХрд╣рд╛, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╢реБрд░реВ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд░реАрдЦ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк
{dateTimeNow}
рдХреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдЬреИрд╕реЗ{ {a: 1} }
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ: