What you were expecting:
SelectField should be displayed when inside Filter component.
What happened instead:
SelectField is not rendered in DOM. Ohter simple TextFields inside filter are property rendered.
Steps to reproduce:
Related code:
import React from 'react';
import { Admin, Resource } from 'react-admin';
import { SelectField, List, Datagrid, TextField, Filter } from 'react-admin';
import { OrderList } from './orders';
import dataProvider from './dataProvider';
const App = () => (
<Admin dataProvider={dataProvider}>
<Resource name="orders" list={OrderList} />
</Admin>
);
const OrderFilter = (props) => (
<Filter {...props}>
<SelectField source="order_status_id" choices={[
{ id: 1, name: 'Pending' },
{ id: 2, name: 'Confirmed' },
{ id: 3, name: 'Shipped' },
{ id: 4, name: 'Fraud' },
]} alwaysOn />
</Filter>
);
export const OrderList = props => (
<List {...props} exporter={false} bulkActionButtons={false} filters={<OrderFilter />} >
<Datagrid rowClick="show">
<TextField source="id" />
<TextField source="order_status_id" label='Status' />
</Datagrid>
</List>
);
Other information:
Environment
2.7.216.8.3Google Chrome Version 72.0.3626.119Use SelectInput instead of SelectField..
Most helpful comment
Use
SelectInputinstead ofSelectField..