Вам все равно нужно указать второй цвет как-то .Вы можете передать первый цвет, а затем, возможно, рассчитать второй цвет в компоненте.Здесь я конвертирую второй цвет, чтобы он был на 20% темнее, чем входной цвет.
Вы можете настроить логику в соответствии с вашим конкретным вариантом использования.
class App extends React.Component {
render() {
return (
<Box color1="#FFA500" />
);
}
}
const Box = ({color1}) => {
const rgb = [color1.substring(1,3), color1.substring(3,5), color1.substring(5,7)];
const color2 = `rgb(${rgb.map(c => (parseInt(c, 16) * 0.8)).join()})`;
return (
<div className="box" style={{background: `linear-gradient(${color1}, ${color2})`}} />
);
}
ReactDOM.render(<App />, document.getElementById("app"));
.box {
width: 100px;
height: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>