Вы пробовали с помощью роутера?
import { withRouter } from 'react-router-dom'
const AccountSwitch = props => {
switch(props.match.params.id) {
case '':
return (
<AccountMessages />
);
case 'orders':
return (
<AccountOrders />
)
default:
return <span>select a page<span/>
}
}
export default withRouter(AccountSwitch)
Загрузка файла через Ajax не действительно возможна. Можно все еще загрузить файл в фоновом режиме с помощью скрытого iframe, и любой оценивает ответ (который является затем в iframe), или запустите другой вызов ajax после того, как загрузка завершена.
<g:form name="upload-form" action="upload" method="post" enctype="multipart/form-data" target="hidden-upload-frame">
File: <input type="file" name="myFile" />
<button type="submit">Upload</button>
</g:form>
<iframe id="hidden-upload-frame" name="hidden-upload-frame" style="display: none" onload="onUploadComplete">
</iframe>
<script type="text/javascript">
function onUploadComplete(e) {
// Handle upload complete
alert("upload complete");
// Evaluate iframe content or fire another ajax call to get the details for the previously uploaded file
}
</script>
Другая опция состоит в том, чтобы использовать основанный на флэш-памяти механизм загрузки (например, swfupload) вместо iframe.