React Smart and Dumb Components separation query
Seems like you got a good start. 

Consider refactoring components that do not keep state into a "functional component". More about functional components here. This is a simple JavaScript arrow function that returns what you would like the component to render, based on your props. The function will take the prop-object as an argument. In your case it would become:

const Child = (props) =&gt; (
    &lt;div&gt;
        &lt;p&gt;I said {props.greeting} {props.count} times&lt;/p&gt;    
    &lt;/div&gt;
)


Or even simpler using destructuring from Ecmascript 2015. Notice that we can retrieve the attributes of the prop-object directly in the function parameters.

const Child = ({greeting, count}) =&gt; (
    &lt;div&gt;
        &lt;p&gt;I said {greeting} {count} times&lt;/p&gt;    
    &lt;/div&gt;
)


I think your parent component is fine. You are separating the concerns of the buttons and text output neatly and there is no need to move the buttons into the Child component. This is obviously a simple example, in more complex cases it might make sense to encapsulate the elements inside another component in order to prevent re-rendering or because of functional cohesion. In this case it would perhaps be overkill.