Я посмотрел вокруг на некоторые другие примеры, и это работает вплоть до того момента, когда я бы хотел, чтобы оно обновляло форму записи в инструментах Redx-разработчика. Это мой первый снимок пользовательского ввода, поэтому я не удивленно, может быть, кто-то может подсказать мне ... Вход загрузчика действительно отображается как зарегистрированное поле в redux ... Это мой класс ввода
import React, { Component, PropTypes } from 'react';
import { addField } from 'react-admin';
class CloudinaryInput extends Component {
static propTypes: {
label: PropTypes.string,
onUploadSuccess: PropTypes.func,
}
static defaultProps = {
label: 'Upload Image to Cloudinary'
}
processCloudinaryResult = (error, results) => {
if (results && results.event === 'success') {
const result = results.info;
const { secure_url, path } = result;
this.props.onUploadSuccess({publicUrl: secure_url, cloudinaryId: path});
}
}
componentDidMount(){
this.openCloudinaryUploader();
}
openCloudinaryUploader = () => {
//const { cloud_name, unsigned_upload_preset } = this.props.cloudinarySettings;
let cloud_name = 'some_cloud_name';
window.cloudinary.openUploadWidget({
cloud_name: cloud_name,
upload_preset: 'some_upload_preset',
showAdvancedOptions: true,
inline_container: '#inline_container',
cropping: true,
multiple: false,
defaultSource: "local",
sources: [ "local",
"url",
"camera",
"image_search",
"facebook",
"dropbox",
"instagram"
]
}, this.processCloudinaryResult
);
}
render() {
return (
<div id="inline_container"></div>
)
}
}
export default addField(CloudinaryInput);
и контейнер следующим образом:
import React from 'react';
import CloudinaryInput from './CloudinaryInput'
class CloudinaryInputContainer extends React.Component {
onImageUpload = ({publicUrl, cloudinaryId}) => {
/* do something with the just uploaded image id/url. */
console.log('URL: ' + publicUrl);
console.log('ID: ' + cloudinaryId);
}
render() {
return <div>
<CloudinaryInput source='uploader' onUploadSuccess={this.onImageUpload} />
</div>
}
}
export default CloudinaryInputContainer;
Все, что меня действительно интересует, это заполнение облачного результата URL в значениях моей формы, чтобы я мог записать его в БД, поэтому я не уверен, чего мне здесь не хватает.Возможно, есть более простой способ, чем этот, но не тот, с которым я сталкивался, просматривая примеры.Строки console.log выводят правильные значения