Должен экспортировать строку w/запятые в нем правильно в файл CSV

Почему вы думаете, что не можете использовать внутренние переменные так же, как и с классами?

хорошо, чувствует себя немного грязно, но как насчет изменения состояния useState? 8)

Нет, это не работает должным образом. Состояние сбрасывается при повторном рендеринге

. возможно, наша логика должна основываться на самой анимации. Эта конкретная проблема может быть решена путем проверки класса, который устанавливает скорость для элемента во время его анимации.

const FunctionExample = ({ count }) => {
  console.log("Rendering FunctionExample", count);

  // let isAnimating = false; // no good if component rerenders during animation
  
  // abuse useState var instead?
  // let [isAnimating] = React.useState(false);
  
  const blockRef = React.useRef(null);

  // Animate the block.
  const onClick = React.useCallback(() => {
    // use feature of the anim itself
    if (/velocity-animating/.test(blockRef.current.className)) {
      return;
    }
    console.log("animation triggered");
    
    Velocity(blockRef.current, {
      translateX: 500,
      complete: () => {
        Velocity(blockRef.current, {
          translateX: 0,
        }, {
          duration: 1000
        });
      }
    }, {
      duration: 5000
    });
  });

  return (
  <div>
    <div
      id = 'block'
      onClick = {onClick}
      ref = {blockRef}
      style = {
        {
          width: '100px',
          height: '10px',
          backgroundColor: 'red'
        }
      }
      >
      {}
    </div>
  </div>
  );
};

const Counter = () => {
  const [count, setCount] = React.useState(0);
  return <div>
    <FunctionExample count={count} />
    <button onClick={() => setCount(c => c + 1)}>Count</button>
  </div>;
}

ReactDOM.render( < div > < Counter / > < /div>, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.2/velocity.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.3/umd/react-dom.production.min.js"></script>

<div id='root' style='width: 100%; height: 100%'>
</div>

5
задан sshow 26 June 2012 в 14:48
поделиться

5 ответов

Заключите поле в двойные кавычки. Удвойте все встроенные двойные кавычки.

ordinary field,"field with , in it","field with double double quote ("""")"

Обратите внимание, что это очень, очень близко к вопросу Работа с запятыми в CSV-файле

6
ответ дан 18 December 2019 в 09:53
поделиться

Вы должны проверить fputcsv () . Там также есть несколько полезных комментариев.

 int fputcsv (resource $ handle, array $ fields [, string $ delimiter = ','
 [, строка $ enclosure = '"']])

fputcsv () форматирует строку (передано как массив полей) как CSV и записать его (завершается переводом строки) в указанный дескриптор файла.

10
ответ дан 18 December 2019 в 09:53
поделиться

Ум, почему бы просто не использовать встроенную команду mySQL? Если я что-то пропустил, пожалуйста, проигнорируйте, но я думаю, что это самый быстрый маршрут:

http://www.netreveal.com/ddalton/2006/08/how_to_export_mysql_to_csv.html

Сайт в основном предлагает:

SELECT <fields or *> INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM <table> WHERE <condition> 
1
ответ дан 18 December 2019 в 09:53
поделиться

Редактировать: Плохо, я только что проверил это, и оно не работает - по крайней мере, в Excel.

Вы можете заменить запятые на что-то другое:

$field = str_replace(',','#COMMA#',$row['Field']);
$csv_output .= $field.', '; 
0
ответ дан 18 December 2019 в 09:53
поделиться

Вы можете использовать другой разделитель, например " |» или «@», или какой-либо другой символ, который вряд ли появится в данных.

Большинство программного обеспечения CSV имеет возможность чтения в файле «CSV», который использует в качестве разделителя что-то отличное от запятой.

0
ответ дан 18 December 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: