2015-09-08 9 views
0

Я пытаюсь изменить фоновое изображение div в зависимости от различных обстоятельств в компоненте React, но сначала мне нужно выяснить, можно ли установить фоновое изображение через переменную или функции, и это не представляется возможным. Например, с переменным, не кажется, что-то вроде этого псевдо-кода для работыустановить фоновое изображение через функцию или переменную

render: function(){ 
var myvariable = "url('http://localhost:8080/assets/myimage.jpg')" 
return (
    <div style={{ "backgroundImage": { myvariable }, "width": "300px"}}</div> 
    ) 
} 

Я также пытался вызвать функцию из стилей инлайн, но компилятор возражал носок . в this.setBackgroundImage

setBackgroundImage: function(){ 
    return "url('http://localhost:8080/assets/myimage.jpg')" 
}, 
render: function(){ 

    return (
     <div style={{ "backgroundImage": { this.setBackgroundImage }, "width": "300px"}}</div> 
     ) 
    } 

Вопрос: можно ли вызвать функцию или использовать переменную в встроенных стилях в React, а если нет, то как я могу достичь того, что я пытаюсь сделать (т.е. повернуть фоновые изображения для div)?

Отметим, что DIV должен иметь другие стили на нем (ширина, высота и т.д.), а не только фоновое изображение

ответ

1

В основном то, что вам нужно сделать, это составить стили как:

var divStyle = { 
    backgroundImage: 'url(' + imgUrl + ')', 
    width: '300px' 
}; 

А затем использовать их рядные:

return (
    <div style={divStyle}></div> 
) 

React Inline Styles

+0

Я видел подобное отво к этому, но у меня есть несколько стилей, которые нужно применять (есть примечание об этом в OP). Как добавить другие стили в объект divStyle? Все, что я пытаюсь сделать, вызывает незаконную ошибку токена или неожиданный идентификатор. – BrainLikeADullPencil

+0

См. Обновленный ответ. –

+0

Я приму ваш ответ на основании его ссылки на авторитет, но по какой-то причине он работает только для меня, когда я делаю это inline. – BrainLikeADullPencil

Смежные вопросы