diff --git a/_data/nav_tips.yml b/_data/nav_tips.yml index 95824f28..63875913 100644 --- a/_data/nav_tips.yml +++ b/_data/nav_tips.yml @@ -28,3 +28,5 @@ title: False in JSX - id: communicate-between-components title: Communicate Between Components + - id: expose-component-functions + title: Expose Component Functions diff --git a/tips/14-communicate-between-components.md b/tips/14-communicate-between-components.md index 39e79c6b..a3a428f5 100644 --- a/tips/14-communicate-between-components.md +++ b/tips/14-communicate-between-components.md @@ -4,6 +4,7 @@ title: Communicate Between Components layout: tips permalink: communicate-between-components.html prev: false-in-jsx.html +next: expose-component-functions.html --- For parent-child communication, simply [pass props](/react/docs/multiple-components.html). diff --git a/tips/15-communicate-between-components-2.md b/tips/15-communicate-between-components-2.md new file mode 100644 index 00000000..476d9ee1 --- /dev/null +++ b/tips/15-communicate-between-components-2.md @@ -0,0 +1,59 @@ +--- +id: expose-component-functions +title: Expose Component Functions +layout: tips +permalink: expose-component-functions.html +prev: communicate-between-components.html +--- + +There's another (uncommon) way of [communicating between components](/react/tips/communicate-between-components.html): simply expose a method on the child component for the parent to call. + +Say a list of todos, which upon clicking get removed. If there's only one unfinished todo left, animate it: + +```js +/** @jsx React.DOM */ + +var Todo = React.createClass({ + render: function() { + return