2017-01-22 2 views
0

私のスキーマと私のjsonをコンストラクタに渡す必要があるという問題に悩まされています。まず、Reactabularを使用してSPAを開発していますが、このライブラリでは、generateRowsという名前の関数を使用してアプリケーションを起動することはできますが、ですが、自分のオブジェクトを注入する必要がありません行を生成します。私の行とそのjsonスキーマをthis.stateに渡す

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'] 
}; 

ありがとう!

答えて

1

generateRowsを使用しないでください。 generateRowshereを導入し、ダミーの配列データを返します。

コンポーネントを実装するには、exampleに従ってください。 すべての機能を使用し、this.state.rowにスキーマと行を渡したい場合。ちょうどこれを行う:

this.state = { 
     row: { 
     rows: yourRows, 
     schema: yourSchema 
     }, 
     searchColumn: 'all', 
     query: {}, // search query 
     sortingColumns: null, 
     columns: this.getColumns(), 
     pagination: { 
     page: 1, 
     perPage: 5 
     } 
    }; 
+0

私はあなたの助けに感謝しますが、それは動作しません。 –

+0

あなたの反応のソースコードを教えてください。 –

+1

Btwでは、デモジェネレータコードで使用されているスキーマをそのままスキップすることができます。 Reactabularは特別なことをしません。ですから、 'rows:yourRows'を状態にするだけで十分です。 –

関連する問題