Я столкнулся с проблемой, что мне нужно передать мою схему и мой json в свой конструктор. Прежде всего, я использую Reactabular для разработки SPA, но в этой библиотеке я могу запустить приложение только с помощью функции, которую они создали, с именем generateRows, , но у меня есть свои собственные объекты для ввода, поэтому я не хочу для генерации строк.Перейдите к this.state мои строки и их json-схема
В моем компоненте я есть этот кусок кода:
class AllFeaturesTable extends React.Component {
constructor(props) {
super(props);
this.state = {
rows: generateRows(5, schema),
searchColumn: 'all',
query: {}, // search query
sortingColumns: null,
columns: this.getColumns(),
pagination: {
page: 1,
perPage: 5
}
};
Когда я передать мои строки в JSON объект массива все прекрасно работает до тех пор пока я пытаюсь изменить эти значения, и имеет смысл, почему я не могу изменить это данные. Я не могу, потому что я не передал схему (как вы, ребята, можете видеть в генераторах, которые они использовали в качестве параметра для схемы).
Вопрос в том, как я могу это достичь? пройдите в моем this.state.row схему и мои строки.
Это мои строки:
const predefinedRows = [
{ "combustivel" : "Flex",
"imagem" : null,
"marca" : "Volkswagem",
"modelo" : "Gol",
"placa" : "FFF-5498",
"valor" : 20000
},
{ "combustivel" : "Gasolina",
"imagem" : null,
"marca" : "Volkswagem",
"modelo" : "Fox",
"placa" : "FOX-4125",
"valor" : "20000"
},
{ "combustivel" : "Alcool",
"imagem" : "http://carros.ig.com.br/fotos/2010/290_193/Fusca2_290_193.jpg",
"marca" : "Volkswagen",
"modelo" : "Fusca",
"placa" : "PAI-4121",
"valor" : "20000"
}
];
и это моя схема:
const schema = {
type: 'object',
properties: {
combustivel: {
type: 'string'
},
imagem: {
type: 'string'
},
marca: {
type: 'string'
},
modelo: {
type: 'string'
},
placa: {
type: 'string'
},
valor: {
type: 'integer'
}
},
required: ['combustivel', 'imagem', 'marca', 'modelo', 'placa']
};
Заранее спасибо!
Я ценю за вашу помощь, но он не работает. –
Не могли бы вы исправить свой исходный код? –
Btw, схема может быть пропущена полностью, поскольку это то, что использует код демо-генератора. Reactabular не делает ничего особенного с этим. Так что достаточно иметь только «rows: yourRows' в состоянии. –