You may need to setup React to accept many of the AMP directives using ReactInjection.
After you do it, the HTML produced by React will contain it.
import { DOMProperty } from 'react-dom/lib/ReactInjection'
DOMProperty.injectDOMPropertyConfig({
Properties: {
'[class]': DOMProperty.MUST_USE_PROPERTY
}
})
UPDATE (AUG-25-2017):
The code above solves the case for regular HTML tags like div, ul, span, etc.
I'm currently having an issue placing [src] attribute inside a custom amp-list. React code does not take injected DOM Property into account for custom tags, the code considers that an attribute starting with '[' is not "safe" and remove it from the 'amp-list', regardless of the setup of injectDOMPropertyConfig.
There is a RFC for React 16 that would solve the issue: https://github.com/facebook/react/issues/10399
I have also placed a question on:
https://github.com/facebook/react/pull/10385