от
Я хочу изменить стиль элементов, таких как цвет или размер шрифта в FlatList, я проверил некоторые вопросы, такие как этот или Эта , но это не работает в моем коде. Если я буду использовать цикл, а не FlatList можно успешно менять стиль элемента.. Вот мой код

let jobCategory= [
    {
        "id": "a",
        "name": "1",
    },
    {
        "id": "b",
        "name": "2",
    },
    {
        "id": "c",
        "name": "3",
    },
    {
        "id": "d",
        "name": "4",
    },
    {
        "id": "e",
        "name": "5",
    },
    {
        "id": "f",
        "name": "6",
    },
]


const styles = StyleSheet.create({
    categoryUnselectedStyle: {
        paddingTop: pxToDp(25),
        paddingBottom: pxToDp(25),
        paddingRight: pxToDp(30),
        paddingLeft: pxToDp(30),
        backgroundColor: '#f4f6f7',
    },
    categoryselectedStyle: {
        backgroundColor: 'white',
    },
    categoryTextUnselectedStyle: {
        color: '#666666',
        fontSize: pxToDp(28)
    },
    categoryTextselectedStyle: {
        color: 'lightblue',
        fontSize: pxToDp(40),
    },
});


const JobExpectPage = (props) => { 
    const [categorySelected, setCategorySelected] = useState("")


        const renderJobCategory = ({ item }) => {
        return (
             setCategorySelected(item.id)}
                style={[styles.categoryUnselectedStyle, categorySelected == item.id

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Проблема здесь заключается в том, что flatlist не перерисовку как
array jobCategory
всегда одинаков. Вы должны добавить дополнительные данные [extradata] собственность на flatlist и пройти categorySelected крючок, так потом flatlist знает, что когда categorySelected изменения, он повторно, делают это следующим образом:
 return (
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...