Попробуйте использовать это. Я не могу проверить это сразу, но думаю, что это сработает.
{"\n"}
<Tooltip placement="right" isOpen={this.state.tooltipOpen} target="TooltipExample" toggle={this.toggleTooltip}>
line one {"\n"}
line two
</Tooltip>
РЕДАКТИРОВАТЬ: «~» удалить, не намеревался добавить его.
РЕДАКТИРОВАТЬ: Вы пытались просто добавить <br />
?
<Tooltip placement="right" isOpen={this.state.tooltipOpen} target="TooltipExample" toggle={this.toggleTooltip}>
line one <br />
line two
</Tooltip>
liftM
и head
очень хороши, но позволяют нам не забыть сопоставление с образцом:
main = do { arg:_ <- getArgs; print arg }
или если Вам нравится расположение
main = do
arg : _ <- getArgs
print arg
Когда возможно, большинство Haskellers предпочитает сопоставление с образцом head
и tail
.
Еще одна возможность:
main = putStr . head =<< getArgs
Как насчет этого?
import Control.Monad
main = do
first <- liftM head getArgs
print first
Также возможно использовать ap
функция (с типом Monad m => m (a -> b) -> m a -> m b
) как это:
import System
import Control.Monad
main :: IO ()
main = do line <- return head `ap` getArgs
putStrLn line
Это имеет простое преимущество, что, если Ваша функция требует нескольких аргументов, можно использовать ap
между каждым из них и Вы не должны использовать liftM2
, liftM3
и т.д. Для функции f::a -> b -> c -> d
Вы пишете
return f `ap` arg1 `ap` arg2 `ap` arg3
Как, связывают и возвращают помеху?
main = getArgs >>= (return.head) >>= print
или
main = liftM head getArgs >>= print