Попробуй, скажи, работает ли он на тебя.
class Box extends React.Component {
render() {
const className = this.props.className;
const color = this.props.color;
return (
<div
className={className}
color={color}
onClick={() => console.log(color)}
/>
);
}
}
class App extends React.Component {
render() {
return (
<div>
<Box className="box1" color="red" />
<Box className="box2" color="blue" />
<Box className="box3" color="green" />
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("root"));
Простая вещь состояла бы в том, чтобы просто передать Ваш сценарий по каналу через "меньше" или подобная команда во времени выполнения.
Вот простой метод, который делает приблизительно, что Вы хотите, хотя:
def print_and_wait(some_long_message):
lines = some_long_message.split('\n')
i=0
while i < len(lines):
print '\n'.join(lines[i:i+10])
raw_input("press enter to read more...")
i += 10
Вы могли также изучить использование проклятий.
Как Йони, сказанная выше правильного способа сделать, это должно обеспечить метод печати что страницы автоматически в Вашем выполнении cmd экземпляр. Конструктор Cmd берет stdin и stdout аргументы. Настолько простой обеспечивают объект, который работает как stdout и поддерживает Ваш метод печати подкачки страниц.
class PagingStdOut(object):
def write(self, buffer, lines_before_pause=40):
# do magic paging here...
Подпрограммы подкачки страниц могут быть найдены в genutils.py файле IPython (см. page
, или page_dumb
для более простого). Код является немного сложным, но это, вероятно, неизбежно, при попытке быть портативными к системам включая Windows и различные виды эмуляторов терминала.
У меня был такой же вопрос. В модуль pydoc встроен пейджер. Я включил его таким образом (что я считаю хакерским и неудовлетворительным ... хотя я открыт для лучших идей).
Мне нравится идея, что он будет запускаться автоматически, если будет больше x результатов и пейджинг включен, что можно реализовать, но не здесь.
import cmd
from pydoc import pager
from cStringIO import StringIO
import sys
PAGER = True
class Commander(cmd.Cmd):
prompt = "> "
def do_pager(self,line):
global PAGER
line = line + " 1"
tokens = line.lower().split()
if tokens[0] in ("on","true","t", "1"):
PAGER = True
print "# setting PAGER True"
elif tokens[0] in ("off","false","f","0"):
PAGER = False
print "# setting PAGER False"
else:
print "# can't set pager: don't know -> %s" % tokens[0]
def do_demo(self,line):
results = dict(a=1,b=2,c=3)
self.format_commandline_results(results)
def format_commandline_results(self,results):
if PAGER:
ofh = StringIO()
else:
ofh = sys.stdout
for (k,v) in sorted(results.items()):
print >> ofh, "%s -> %s" % (k,v)
if PAGER:
ofh.seek(0)
pager(ofh.read())
return None
def do_EOF(self,line):
print "",
return True
if __name__ == "__main__":
Commander().cmdloop("# try: \n> pager off \n> demo \n> pager on \n> demo \n\n")